/*
 * Copyright (c) 2018 Tencent. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */
const AbstractModel = require("../../common/abstract_model");

/**
 * CreatePresetKey response structure.
 * @class
 */
class CreatePresetKeyResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {PresetResp || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new PresetResp();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeOnlineVersion request structure.
 * @class
 */
class DescribeOnlineVersionRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program ID
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * Additional compilation task info
 * @class
 */
class DescribeMNPVersionCompileTaskExtInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * TCMPP error message
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.TCMPPErrMsg = null;

        /**
         * WX Error Message
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.WXErrMsg = null;

        /**
         * WeChat QR code
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.WXQrCode = null;

        /**
         * Compile size Information
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.SizeInfo = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TCMPPErrMsg = 'TCMPPErrMsg' in params ? params.TCMPPErrMsg : null;
        this.WXErrMsg = 'WXErrMsg' in params ? params.WXErrMsg : null;
        this.WXQrCode = 'WXQrCode' in params ? params.WXQrCode : null;
        this.SizeInfo = 'SizeInfo' in params ? params.SizeInfo : null;

    }
}

/**
 * DescribeOfflineMNPPackage request structure.
 * @class
 */
class DescribeOfflineMNPPackageRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program ID
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * DescribeRoleDetail request structure.
 * @class
 */
class DescribeRoleDetailRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Role ID
         * @type {number || null}
         */
        this.RoleId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RoleId = 'RoleId' in params ? params.RoleId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * DescribeMNPAllStageVersions request structure.
 * @class
 */
class DescribeMNPAllStageVersionsRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program ID
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * ModifyApplication request structure.
 * @class
 */
class ModifyApplicationRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Application ID
         * @type {string || null}
         */
        this.ApplicationId = null;

        /**
         * The application name.
         * @type {string || null}
         */
        this.ApplicationName = null;

        /**
         * Application introduction
         * @type {string || null}
         */
        this.Intro = null;

        /**
         * Icon
         * @type {string || null}
         */
        this.Logo = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * Android app package name
         * @type {string || null}
         */
        this.AndroidAppKey = null;

        /**
         * iOS App bundleId
         * @type {string || null}
         */
        this.IosAppKey = null;

        /**
         * Remarks
         * @type {string || null}
         */
        this.Remark = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ApplicationId = 'ApplicationId' in params ? params.ApplicationId : null;
        this.ApplicationName = 'ApplicationName' in params ? params.ApplicationName : null;
        this.Intro = 'Intro' in params ? params.Intro : null;
        this.Logo = 'Logo' in params ? params.Logo : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;
        this.AndroidAppKey = 'AndroidAppKey' in params ? params.AndroidAppKey : null;
        this.IosAppKey = 'IosAppKey' in params ? params.IosAppKey : null;
        this.Remark = 'Remark' in params ? params.Remark : null;

    }
}

/**
 * ModifyUserPassword request structure.
 * @class
 */
class ModifyUserPasswordRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * User ID
         * @type {string || null}
         */
        this.UserId = null;

        /**
         * Account password. Use CreatePresetKey to get publick key to encrypt the password.
         * @type {string || null}
         */
        this.Password = null;

        /**
         * Call CreatePresetKey to get the keyID from RequestId
         * @type {string || null}
         */
        this.KeyId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.UserId = 'UserId' in params ? params.UserId : null;
        this.Password = 'Password' in params ? params.Password : null;
        this.KeyId = 'KeyId' in params ? params.KeyId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * Team member information
 * @class
 */
class DescribeTeamMembersInfoPageResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of results.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List information
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<DescribeTeamMembersInfoResp> || null}
         */
        this.DataList = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.DataList) {
            this.DataList = new Array();
            for (let z in params.DataList) {
                let obj = new DescribeTeamMembersInfoResp();
                obj.deserialize(params.DataList[z]);
                this.DataList.push(obj);
            }
        }

    }
}

/**
 * Team domain list
 * @class
 */
class DescribeDomainTeamListPageResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of entries
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List information
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<DescribeDomainTeamListInfoResp> || null}
         */
        this.DataList = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.DataList) {
            this.DataList = new Array();
            for (let z in params.DataList) {
                let obj = new DescribeDomainTeamListInfoResp();
                obj.deserialize(params.DataList[z]);
                this.DataList.push(obj);
            }
        }

    }
}

/**
 * DeleteUser request structure.
 * @class
 */
class DeleteUserRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * User ID
         * @type {string || null}
         */
        this.UserId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.UserId = 'UserId' in params ? params.UserId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * ModifyPlatformAuditStatus response structure.
 * @class
 */
class ModifyPlatformAuditStatusResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {BooleanInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new BooleanInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeMNPCategory response structure.
 * @class
 */
class DescribeMNPCategoryResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<MNPTypeDefine> || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            this.Data = new Array();
            for (let z in params.Data) {
                let obj = new MNPTypeDefine();
                obj.deserialize(params.Data[z]);
                this.Data.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Parameters of the request to add a sensitive API
 * @class
 */
class CreateApplicationSensitiveAPIReq extends  AbstractModel {
    constructor(){
        super();

        /**
         * API name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.APIName = null;

        /**
         * API description
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.APIDesc = null;

        /**
         * API type. 1: System; 2: Custom
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.APIType = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.APIName = 'APIName' in params ? params.APIName : null;
        this.APIDesc = 'APIDesc' in params ? params.APIDesc : null;
        this.APIType = 'APIType' in params ? params.APIType : null;

    }
}

/**
 * DescribeSensitiveAPIList request structure.
 * @class
 */
class DescribeSensitiveAPIListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Page offset
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Number of results per page
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * Keywords for search (API name or method)
         * @type {string || null}
         */
        this.Keyword = null;

        /**
         * Team ID
         * @type {string || null}
         */
        this.TeamId = null;

        /**
         * Application ID
         * @type {string || null}
         */
        this.ApplicationId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;
        this.Keyword = 'Keyword' in params ? params.Keyword : null;
        this.TeamId = 'TeamId' in params ? params.TeamId : null;
        this.ApplicationId = 'ApplicationId' in params ? params.ApplicationId : null;

    }
}

/**
 * CreateMNPApproval request structure.
 * @class
 */
class CreateMNPApprovalRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program version ID
         * @type {number || null}
         */
        this.MNPVersionId = null;

        /**
         * submit: Submit an approval request; cancel: Cancel the approval request
         * @type {string || null}
         */
        this.ApplyAction = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPVersionId = 'MNPVersionId' in params ? params.MNPVersionId : null;
        this.ApplyAction = 'ApplyAction' in params ? params.ApplyAction : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * RemoveMNP request structure.
 * @class
 */
class RemoveMNPRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program ID
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * DeleteTeamMember response structure.
 * @class
 */
class DeleteTeamMemberResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {BooleanInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new BooleanInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * RemoveMNP response structure.
 * @class
 */
class RemoveMNPResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {BooleanInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new BooleanInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Mini program list
 * @class
 */
class DescribeMNPListResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of entries
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List information
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<DescribeMNPListData> || null}
         */
        this.DataList = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.DataList) {
            this.DataList = new Array();
            for (let z in params.DataList) {
                let obj = new DescribeMNPListData();
                obj.deserialize(params.DataList[z]);
                this.DataList.push(obj);
            }
        }

    }
}

/**
 * Response of querying the preview version
 * @class
 */
class DescribeMNPPreviewResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Mini program name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPName = null;

        /**
         * Mini program description
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPDesc = null;

        /**
         * Mini program version
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPVersion = null;

        /**
         * Mini program introduction
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPVersionIntro = null;

        /**
         * Mini program QR code
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.QRCodeUrl = null;

        /**
         * Path to the preview version
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.PreviewEntrancePath = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.MNPName = 'MNPName' in params ? params.MNPName : null;
        this.MNPDesc = 'MNPDesc' in params ? params.MNPDesc : null;
        this.MNPVersion = 'MNPVersion' in params ? params.MNPVersion : null;
        this.MNPVersionIntro = 'MNPVersionIntro' in params ? params.MNPVersionIntro : null;
        this.QRCodeUrl = 'QRCodeUrl' in params ? params.QRCodeUrl : null;
        this.PreviewEntrancePath = 'PreviewEntrancePath' in params ? params.PreviewEntrancePath : null;

    }
}

/**
 * DescribeMNPVersion response structure.
 * @class
 */
class DescribeMNPVersionResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {DescribeMNPVersionResp || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new DescribeMNPVersionResp();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ModifyApplication response structure.
 * @class
 */
class ModifyApplicationResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {BooleanInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new BooleanInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * EnableApplicationSensitiveAPI response structure.
 * @class
 */
class EnableApplicationSensitiveAPIResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {BooleanInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new BooleanInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeTeamDomainList request structure.
 * @class
 */
class DescribeTeamDomainListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Page offset
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Number of results per page
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Team ID
         * @type {string || null}
         */
        this.TeamId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.TeamId = 'TeamId' in params ? params.TeamId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * DescribeSensitiveApiAuthList request structure.
 * @class
 */
class DescribeSensitiveApiAuthListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Page offset
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Number of results per page
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Mini program ID
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * Application ID
         * @type {string || null}
         */
        this.ApplicationId = null;

        /**
         * Keywords for search (API name)
         * @type {string || null}
         */
        this.Keyword = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;
        this.ApplicationId = 'ApplicationId' in params ? params.ApplicationId : null;
        this.Keyword = 'Keyword' in params ? params.Keyword : null;

    }
}

/**
 * DescribeMNPList response structure.
 * @class
 */
class DescribeMNPListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {DescribeMNPListResp || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new DescribeMNPListResp();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ModifyMNPStatusOffline request structure.
 * @class
 */
class ModifyMNPStatusOfflineRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program ID
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * ProcessMNPApproval response structure.
 * @class
 */
class ProcessMNPApprovalResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {BooleanInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new BooleanInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * The general parameter for resource ID returned for successful operations
 * @class
 */
class ResourceIdStringInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * The ID of the resource returned
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ResourceId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ResourceId = 'ResourceId' in params ? params.ResourceId : null;

    }
}

/**
 * DescribeGlobalDomainACL request structure.
 * @class
 */
class DescribeGlobalDomainACLRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Page offset
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Number of results per page
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * Domain type. 1: Allowed; 2: Blocked
         * @type {Array.<number> || null}
         */
        this.DomainTypes = null;

        /**
         * Domain names to be queried.
         * @type {string || null}
         */
        this.Keyword = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;
        this.DomainTypes = 'DomainTypes' in params ? params.DomainTypes : null;
        this.Keyword = 'Keyword' in params ? params.Keyword : null;

    }
}

/**
 * DeleteTeam response structure.
 * @class
 */
class DeleteTeamResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {BooleanInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new BooleanInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Response of querying the rollback version list
 * @class
 */
class DescribeRevertOnlineVersionPageResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of entries
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List information
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<QueryOnlineVersionResp> || null}
         */
        this.DataList = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.DataList) {
            this.DataList = new Array();
            for (let z in params.DataList) {
                let obj = new QueryOnlineVersionResp();
                obj.deserialize(params.DataList[z]);
                this.DataList.push(obj);
            }
        }

    }
}

/**
 * DescribeMNPSensitiveAPIPermissionApproval request structure.
 * @class
 */
class DescribeMNPSensitiveAPIPermissionApprovalRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Approval request number
         * @type {string || null}
         */
        this.ApprovalNo = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ApprovalNo = 'ApprovalNo' in params ? params.ApprovalNo : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * CreateOnlineApply request structure.
 * @class
 */
class CreateOnlineApplyRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program version ID
         * @type {number || null}
         */
        this.MNPVersionId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPVersionId = 'MNPVersionId' in params ? params.MNPVersionId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * CheckGlobalDomain request structure.
 * @class
 */
class CheckGlobalDomainRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Domain name list
         * @type {Array.<string> || null}
         */
        this.DomainUrlList = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.DomainUrlList = 'DomainUrlList' in params ? params.DomainUrlList : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * Team member information
 * @class
 */
class DescribeTeamMemberInfoResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * User ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.UserId = null;

        /**
         * User account
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.UserAccount = null;

        /**
         * User name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.UserName = null;

        /**
         * Team ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.TeamId = null;

        /**
         * Team name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.TeamName = null;

        /**
         * Team role name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.TeamRoleName = null;

        /**
         * Team role ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.TeamRoleId = null;

        /**
         * Editable or not
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {boolean || null}
         */
        this.CanEdit = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.UserId = 'UserId' in params ? params.UserId : null;
        this.UserAccount = 'UserAccount' in params ? params.UserAccount : null;
        this.UserName = 'UserName' in params ? params.UserName : null;
        this.TeamId = 'TeamId' in params ? params.TeamId : null;
        this.TeamName = 'TeamName' in params ? params.TeamName : null;
        this.TeamRoleName = 'TeamRoleName' in params ? params.TeamRoleName : null;
        this.TeamRoleId = 'TeamRoleId' in params ? params.TeamRoleId : null;
        this.CanEdit = 'CanEdit' in params ? params.CanEdit : null;

    }
}

/**
 * ConfigureMNPPreview response structure.
 * @class
 */
class ConfigureMNPPreviewResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {BooleanInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new BooleanInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ModifyMNPVersionPreview request structure.
 * @class
 */
class ModifyMNPVersionPreviewRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program ID
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * 1 Set 2 Cancel
         * @type {number || null}
         */
        this.ActionType = null;

        /**
         * Mini program version ID
         * @type {number || null}
         */
        this.MNPVersionId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * Path to the demo page
         * @type {string || null}
         */
        this.TestEntrancePath = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.ActionType = 'ActionType' in params ? params.ActionType : null;
        this.MNPVersionId = 'MNPVersionId' in params ? params.MNPVersionId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;
        this.TestEntrancePath = 'TestEntrancePath' in params ? params.TestEntrancePath : null;

    }
}

/**
 * Mini program list
 * @class
 */
class DescribeMNPManagerListResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of entries
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List information
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<DescribeMNPManagerListData> || null}
         */
        this.DataList = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.DataList) {
            this.DataList = new Array();
            for (let z in params.DataList) {
                let obj = new DescribeMNPManagerListData();
                obj.deserialize(params.DataList[z]);
                this.DataList.push(obj);
            }
        }

    }
}

/**
 * DescribeSensitiveApiApplyDetail response structure.
 * @class
 */
class DescribeSensitiveApiApplyDetailResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Note: This field may return null, indicating that no valid values can be obtained.
         * @type {DescribeSensitiveApiApplyDetail || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new DescribeSensitiveApiApplyDetail();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeSimpleApplicationInfoList response structure.
 * @class
 */
class DescribeSimpleApplicationInfoListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {ApplicationSimpleListInfoResp || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new ApplicationSimpleListInfoResp();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * List of permission requests to allow a mini program calling sensitive APIs 
 * @class
 */
class DescribeMNPSensitiveAPIPermissionApprovalListData extends  AbstractModel {
    constructor(){
        super();

        /**
         * Approval ID
         * @type {string || null}
         */
        this.ApprovalNo = null;

        /**
         * Sensitive API ID
         * @type {string || null}
         */
        this.APIId = null;

        /**
         * API name
         * @type {string || null}
         */
        this.APIName = null;

        /**
         * API request method
         * @type {string || null}
         */
        this.APIMethod = null;

        /**
         * Mini program ID
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Mini program name
         * @type {string || null}
         */
        this.MNPName = null;

        /**
         * Applicant
         * @type {string || null}
         */
        this.ApplyUser = null;

        /**
         * Application time
         * @type {string || null}
         */
        this.ApplyTime = null;

        /**
         * Application notes
         * @type {string || null}
         */
        this.ApplyNote = null;

        /**
         * Approval status. 1: Processing; 20: Rejected; 30: Approved
         * @type {number || null}
         */
        this.ApprovalStatus = null;

        /**
         * Approver
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApprovalUser = null;

        /**
         * Approval time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApprovalTime = null;

        /**
         * Approval notes
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApprovalNote = null;

        /**
         * Application ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationId = null;

        /**
         * Application name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationName = null;

        /**
         * Application icon
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationLogo = null;

        /**
         * API type. 1: System; 2: Custom
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.APIType = null;

        /**
         * API feature description
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.APIDesc = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ApprovalNo = 'ApprovalNo' in params ? params.ApprovalNo : null;
        this.APIId = 'APIId' in params ? params.APIId : null;
        this.APIName = 'APIName' in params ? params.APIName : null;
        this.APIMethod = 'APIMethod' in params ? params.APIMethod : null;
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.MNPName = 'MNPName' in params ? params.MNPName : null;
        this.ApplyUser = 'ApplyUser' in params ? params.ApplyUser : null;
        this.ApplyTime = 'ApplyTime' in params ? params.ApplyTime : null;
        this.ApplyNote = 'ApplyNote' in params ? params.ApplyNote : null;
        this.ApprovalStatus = 'ApprovalStatus' in params ? params.ApprovalStatus : null;
        this.ApprovalUser = 'ApprovalUser' in params ? params.ApprovalUser : null;
        this.ApprovalTime = 'ApprovalTime' in params ? params.ApprovalTime : null;
        this.ApprovalNote = 'ApprovalNote' in params ? params.ApprovalNote : null;
        this.ApplicationId = 'ApplicationId' in params ? params.ApplicationId : null;
        this.ApplicationName = 'ApplicationName' in params ? params.ApplicationName : null;
        this.ApplicationLogo = 'ApplicationLogo' in params ? params.ApplicationLogo : null;
        this.APIType = 'APIType' in params ? params.APIType : null;
        this.APIDesc = 'APIDesc' in params ? params.APIDesc : null;

    }
}

/**
 * DeleteMNP response structure.
 * @class
 */
class DeleteMNPResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {BooleanInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new BooleanInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ModifySensitiveAPIAuditStatus request structure.
 * @class
 */
class ModifySensitiveAPIAuditStatusRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Approval ticket ID
         * @type {string || null}
         */
        this.AuditNo = null;

        /**
         * Approval status 20 Rejected 30 Approved
         * @type {number || null}
         */
        this.AuditStatus = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * Approval notes
         * @type {string || null}
         */
        this.AuditNote = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.AuditNo = 'AuditNo' in params ? params.AuditNo : null;
        this.AuditStatus = 'AuditStatus' in params ? params.AuditStatus : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;
        this.AuditNote = 'AuditNote' in params ? params.AuditNote : null;

    }
}

/**
 * List of all Developer versions of a mini program
 * @class
 */
class DescribeMPAllStageVersionsResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Mini program version ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.MNPVersionId = null;

        /**
         * Mini program name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPName = null;

        /**
         * Mini program icon
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPIcon = null;

        /**
         * Mini program type
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPType = null;

        /**
         * Mini program introduction
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPIntro = null;

        /**
         * Mini program description
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPDesc = null;

        /**
         * Developer
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CreateUser = null;

        /**
         * The time when the developer created it
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CreateTime = null;

        /**
         * Mini program version
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPVersion = null;

        /**
         * Version features
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPVersionIntro = null;

        /**
         * Phase. Values: [Develop,Platform,Online]
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Phase = null;

        /**
         * 0: Pending; 1: Processing; 2: Rejected; 3: Approved; 4: Cancelled
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.ApprovalStatus = null;

        /**
         * Approval request ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApprovalNo = null;

        /**
         * Whether it is a preview version. 
0: Not a preview version; 1: Preview version
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.ShowCase = null;

        /**
         * Version number to roll back to
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.RollbackVersion = null;

        /**
         * Release status
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.Status = null;

        /**
         * Version approval status. 0: Pending; 1: Processing; 2: Rejected; 3: Approved; 4: Cancelled
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.VersionCurrentStatus = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.MNPVersionId = 'MNPVersionId' in params ? params.MNPVersionId : null;
        this.MNPName = 'MNPName' in params ? params.MNPName : null;
        this.MNPIcon = 'MNPIcon' in params ? params.MNPIcon : null;
        this.MNPType = 'MNPType' in params ? params.MNPType : null;
        this.MNPIntro = 'MNPIntro' in params ? params.MNPIntro : null;
        this.MNPDesc = 'MNPDesc' in params ? params.MNPDesc : null;
        this.CreateUser = 'CreateUser' in params ? params.CreateUser : null;
        this.CreateTime = 'CreateTime' in params ? params.CreateTime : null;
        this.MNPVersion = 'MNPVersion' in params ? params.MNPVersion : null;
        this.MNPVersionIntro = 'MNPVersionIntro' in params ? params.MNPVersionIntro : null;
        this.Phase = 'Phase' in params ? params.Phase : null;
        this.ApprovalStatus = 'ApprovalStatus' in params ? params.ApprovalStatus : null;
        this.ApprovalNo = 'ApprovalNo' in params ? params.ApprovalNo : null;
        this.ShowCase = 'ShowCase' in params ? params.ShowCase : null;
        this.RollbackVersion = 'RollbackVersion' in params ? params.RollbackVersion : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.VersionCurrentStatus = 'VersionCurrentStatus' in params ? params.VersionCurrentStatus : null;

    }
}

/**
 * Global domain name page list
 * @class
 */
class GlobalDomainDescribeListPageResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of results
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * Domain name information
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<GlobalDomainDescribeListInfoResp> || null}
         */
        this.DataList = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.DataList) {
            this.DataList = new Array();
            for (let z in params.DataList) {
                let obj = new GlobalDomainDescribeListInfoResp();
                obj.deserialize(params.DataList[z]);
                this.DataList.push(obj);
            }
        }

    }
}

/**
 * DescribeMNPSensitiveAPIPermissionList request structure.
 * @class
 */
class DescribeMNPSensitiveAPIPermissionListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Page offset
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Number of results per page
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Mini program ID
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * Application ID
         * @type {string || null}
         */
        this.ApplicationId = null;

        /**
         * Keywords for search (API name)
         * @type {string || null}
         */
        this.Keyword = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;
        this.ApplicationId = 'ApplicationId' in params ? params.ApplicationId : null;
        this.Keyword = 'Keyword' in params ? params.Keyword : null;

    }
}

/**
 * DescribeApplicationList request structure.
 * @class
 */
class DescribeApplicationListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Page offset
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Number of results per page
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * Keywords for search (app name)
         * @type {string || null}
         */
        this.Keyword = null;

        /**
         * Team ID
         * @type {string || null}
         */
        this.TeamId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;
        this.Keyword = 'Keyword' in params ? params.Keyword : null;
        this.TeamId = 'TeamId' in params ? params.TeamId : null;

    }
}

/**
 * DescribeTeam response structure.
 * @class
 */
class DescribeTeamResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {DescribeTeamDetailResp || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new DescribeTeamDetailResp();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DeleteTeam request structure.
 * @class
 */
class DeleteTeamRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Team ID
         * @type {string || null}
         */
        this.TeamId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TeamId = 'TeamId' in params ? params.TeamId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * DescribeRoleList request structure.
 * @class
 */
class DescribeRoleListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Page offset
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Number of results per page
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * Keywords for search (role name)
         * @type {string || null}
         */
        this.Keyword = null;

        /**
         * Team ID
         * @type {string || null}
         */
        this.TeamId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;
        this.Keyword = 'Keyword' in params ? params.Keyword : null;
        this.TeamId = 'TeamId' in params ? params.TeamId : null;

    }
}

/**
 * ReleaseMNPVersion response structure.
 * @class
 */
class ReleaseMNPVersionResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {BooleanInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new BooleanInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CreateTeamMember response structure.
 * @class
 */
class CreateTeamMemberResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {CreateTeamMemberInfoResp || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new CreateTeamMemberInfoResp();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeMNPDetail response structure.
 * @class
 */
class DescribeMNPDetailResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Note: This field may return null, indicating that no valid values can be obtained.
         * @type {MNPDetail || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new MNPDetail();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DeleteSensitiveAPI response structure.
 * @class
 */
class DeleteSensitiveAPIResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {BooleanInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new BooleanInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ModifyMNPStatusOffline response structure.
 * @class
 */
class ModifyMNPStatusOfflineResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {BooleanInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new BooleanInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ModifyTeam request structure.
 * @class
 */
class ModifyTeamRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Team ID
         * @type {string || null}
         */
        this.TeamId = null;

        /**
         * Team name
         * @type {string || null}
         */
        this.TeamName = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * Team administrator
         * @type {string || null}
         */
        this.AdminUserId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TeamId = 'TeamId' in params ? params.TeamId : null;
        this.TeamName = 'TeamName' in params ? params.TeamName : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;
        this.AdminUserId = 'AdminUserId' in params ? params.AdminUserId : null;

    }
}

/**
 * DescribeMNPType request structure.
 * @class
 */
class DescribeMNPTypeRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * DescribeDomainInfo request structure.
 * @class
 */
class DescribeDomainInfoRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program ID
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * DescribeMNPType response structure.
 * @class
 */
class DescribeMNPTypeResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<MNPTypeDefine> || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            this.Data = new Array();
            for (let z in params.Data) {
                let obj = new MNPTypeDefine();
                obj.deserialize(params.Data[z]);
                this.Data.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DeleteApplication response structure.
 * @class
 */
class DeleteApplicationResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {BooleanInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new BooleanInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeMNPManagerList response structure.
 * @class
 */
class DescribeMNPManagerListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Note: This field may return null, indicating that no valid values can be obtained.
         * @type {DescribeMNPManagerListResp || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new DescribeMNPManagerListResp();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeMNPPrivacy response structure.
 * @class
 */
class DescribeMNPPrivacyResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {string || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Data = 'Data' in params ? params.Data : null;
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CreateSensitiveAPI request structure.
 * @class
 */
class CreateSensitiveAPIRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Application ID
         * @type {string || null}
         */
        this.ApplicationId = null;

        /**
         * New API list
         * @type {Array.<CreateSensitiveAPIReq> || null}
         */
        this.ApiList = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ApplicationId = 'ApplicationId' in params ? params.ApplicationId : null;

        if (params.ApiList) {
            this.ApiList = new Array();
            for (let z in params.ApiList) {
                let obj = new CreateSensitiveAPIReq();
                obj.deserialize(params.ApiList[z]);
                this.ApiList.push(obj);
            }
        }
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * User details
 * @class
 */
class DescribeUserDetailResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * User ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.UserId = null;

        /**
         * User account
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.UserAccount = null;

        /**
         * User account
1 - Super admin 2 - Platform admin 3 - Ordinary member
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.AccountType = null;

        /**
         * User name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.UserName = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.UserId = 'UserId' in params ? params.UserId : null;
        this.UserAccount = 'UserAccount' in params ? params.UserAccount : null;
        this.AccountType = 'AccountType' in params ? params.AccountType : null;
        this.UserName = 'UserName' in params ? params.UserName : null;

    }
}

/**
 * Privacy API permissions page list
 * @class
 */
class DescribeSensitiveApiAuthPageParam extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of entries
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List data
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<DescribeSensitiveApiAuthListParam> || null}
         */
        this.DataList = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.DataList) {
            this.DataList = new Array();
            for (let z in params.DataList) {
                let obj = new DescribeSensitiveApiAuthListParam();
                obj.deserialize(params.DataList[z]);
                this.DataList.push(obj);
            }
        }

    }
}

/**
 * ProcessMNPSensitiveAPIPermissionApproval response structure.
 * @class
 */
class ProcessMNPSensitiveAPIPermissionApprovalResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {BooleanInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new BooleanInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeApplicationList response structure.
 * @class
 */
class DescribeApplicationListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {ApplicationPageInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new ApplicationPageInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Details of sensitive API applications
 * @class
 */
class DescribeSensitiveApiApplyDetail extends  AbstractModel {
    constructor(){
        super();

        /**
         * API ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.APIId = null;

        /**
         * API request method
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.APIMethod = null;

        /**
         * Reason for application
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplyReason = null;

        /**
         * Reason for rejection
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.RejectReason = null;

        /**
         * Approval status
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.AuditStatus = null;

        /**
         * API function description
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.APIDesc = null;

        /**
         * API type. 1: System; 2: Custom
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.APIType = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.APIId = 'APIId' in params ? params.APIId : null;
        this.APIMethod = 'APIMethod' in params ? params.APIMethod : null;
        this.ApplyReason = 'ApplyReason' in params ? params.ApplyReason : null;
        this.RejectReason = 'RejectReason' in params ? params.RejectReason : null;
        this.AuditStatus = 'AuditStatus' in params ? params.AuditStatus : null;
        this.APIDesc = 'APIDesc' in params ? params.APIDesc : null;
        this.APIType = 'APIType' in params ? params.APIType : null;

    }
}

/**
 * ModifyGlobalDomain response structure.
 * @class
 */
class ModifyGlobalDomainResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {GlobalDomainModifyRespResp || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new GlobalDomainModifyRespResp();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Role management list
 * @class
 */
class DescribeRoleListResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of entries
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List data
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<DescribeRoleListData> || null}
         */
        this.DataList = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.DataList) {
            this.DataList = new Array();
            for (let z in params.DataList) {
                let obj = new DescribeRoleListData();
                obj.deserialize(params.DataList[z]);
                this.DataList.push(obj);
            }
        }

    }
}

/**
 * Team list information
 * @class
 */
class DescribeTeamListInfoResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Team ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.TeamId = null;

        /**
         * Team name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.TeamName = null;

        /**
         * Admin ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.AdminUserId = null;

        /**
         * Admin account
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.AdminUserAccount = null;

        /**
         * Admin username
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.AdminUserName = null;

        /**
         * Number of team members
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.MemberCount = null;

        /**
         * Team registration link
         * @type {string || null}
         */
        this.RegisterLink = null;

        /**
         * Team permission type
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<number> || null}
         */
        this.TeamRoleTypeList = null;

        /**
         * Associated team ID
         * @type {number || null}
         */
        this.RelatedTeamId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TeamId = 'TeamId' in params ? params.TeamId : null;
        this.TeamName = 'TeamName' in params ? params.TeamName : null;
        this.AdminUserId = 'AdminUserId' in params ? params.AdminUserId : null;
        this.AdminUserAccount = 'AdminUserAccount' in params ? params.AdminUserAccount : null;
        this.AdminUserName = 'AdminUserName' in params ? params.AdminUserName : null;
        this.MemberCount = 'MemberCount' in params ? params.MemberCount : null;
        this.RegisterLink = 'RegisterLink' in params ? params.RegisterLink : null;
        this.TeamRoleTypeList = 'TeamRoleTypeList' in params ? params.TeamRoleTypeList : null;
        this.RelatedTeamId = 'RelatedTeamId' in params ? params.RelatedTeamId : null;

    }
}

/**
 * CreateMNPSensitiveAPIPermissionApproval request structure.
 * @class
 */
class CreateMNPSensitiveAPIPermissionApprovalRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * API Id
         * @type {string || null}
         */
        this.APIId = null;

        /**
         * Reason for application
         * @type {string || null}
         */
        this.ApplyReason = null;

        /**
         * Mini program ID
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.APIId = 'APIId' in params ? params.APIId : null;
        this.ApplyReason = 'ApplyReason' in params ? params.ApplyReason : null;
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * DeleteMNP request structure.
 * @class
 */
class DeleteMNPRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program ID
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * Role details
 * @class
 */
class DescribeRoleDetailResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Role ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.RoleId = null;

        /**
         * Role name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.RoleName = null;

        /**
         * Team ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.TeamId = null;

        /**
         * Team name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.TeamName = null;

        /**
         * Accessible menu list
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<string> || null}
         */
        this.ResourceIds = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RoleId = 'RoleId' in params ? params.RoleId : null;
        this.RoleName = 'RoleName' in params ? params.RoleName : null;
        this.TeamId = 'TeamId' in params ? params.TeamId : null;
        this.TeamName = 'TeamName' in params ? params.TeamName : null;
        this.ResourceIds = 'ResourceIds' in params ? params.ResourceIds : null;

    }
}

/**
 * Simple team list
 * @class
 */
class DescribeSimpleTeamListResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of entries
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List information
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<SimpleStringKeyValue> || null}
         */
        this.DataList = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.DataList) {
            this.DataList = new Array();
            for (let z in params.DataList) {
                let obj = new SimpleStringKeyValue();
                obj.deserialize(params.DataList[z]);
                this.DataList.push(obj);
            }
        }

    }
}

/**
 * DescribeMNPManagerList request structure.
 * @class
 */
class DescribeMNPManagerListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Page offset
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Number of results per page
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * Keywords for search (mini program name)
         * @type {string || null}
         */
        this.Keyword = null;

        /**
         * Team ID
         * @type {string || null}
         */
        this.TeamId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;
        this.Keyword = 'Keyword' in params ? params.Keyword : null;
        this.TeamId = 'TeamId' in params ? params.TeamId : null;

    }
}

/**
 * Application information
 * @class
 */
class ApplicationSimpleInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Application ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationId = null;

        /**
         * Application name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationName = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ApplicationId = 'ApplicationId' in params ? params.ApplicationId : null;
        this.ApplicationName = 'ApplicationName' in params ? params.ApplicationName : null;

    }
}

/**
 * DescribeMNPAllStageVersions response structure.
 * @class
 */
class DescribeMNPAllStageVersionsResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<DescribeMPAllStageVersionsResp> || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            this.Data = new Array();
            for (let z in params.Data) {
                let obj = new DescribeMPAllStageVersionsResp();
                obj.deserialize(params.Data[z]);
                this.Data.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeTeamList response structure.
 * @class
 */
class DescribeTeamListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {DescribeTeamPageResp || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new DescribeTeamPageResp();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * User management list
 * @class
 */
class DescribeUserListResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of entries
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List data
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<DescribeUserListData> || null}
         */
        this.DataList = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.DataList) {
            this.DataList = new Array();
            for (let z in params.DataList) {
                let obj = new DescribeUserListData();
                obj.deserialize(params.DataList[z]);
                this.DataList.push(obj);
            }
        }

    }
}

/**
 * Result of the mini program approval requests
 * @class
 */
class ApprovalItem extends  AbstractModel {
    constructor(){
        super();

        /**
         * Application ID
         * @type {string || null}
         */
        this.AppId = null;

        /**
         * Approval result. 2: Rejected;
3: Approved
         * @type {number || null}
         */
        this.ApprovalResult = null;

        /**
         * Approval notes. It’s required when the request is rejected. 
         * @type {string || null}
         */
        this.ApprovalNote = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.AppId = 'AppId' in params ? params.AppId : null;
        this.ApprovalResult = 'ApprovalResult' in params ? params.ApprovalResult : null;
        this.ApprovalNote = 'ApprovalNote' in params ? params.ApprovalNote : null;

    }
}

/**
 * Mini program associated application information
 * @class
 */
class ShowCaseRelAppInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Application ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationId = null;

        /**
         * Application name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationName = null;

        /**
         * Android URL
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationAndUrl = null;

        /**
         * iOS URL
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationIOSUrl = null;

        /**
         * Application icon
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationIcon = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ApplicationId = 'ApplicationId' in params ? params.ApplicationId : null;
        this.ApplicationName = 'ApplicationName' in params ? params.ApplicationName : null;
        this.ApplicationAndUrl = 'ApplicationAndUrl' in params ? params.ApplicationAndUrl : null;
        this.ApplicationIOSUrl = 'ApplicationIOSUrl' in params ? params.ApplicationIOSUrl : null;
        this.ApplicationIcon = 'ApplicationIcon' in params ? params.ApplicationIcon : null;

    }
}

/**
 * CreateTeamMember request structure.
 * @class
 */
class CreateTeamMemberRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Username
         * @type {string || null}
         */
        this.UserName = null;

        /**
         * User account
         * @type {string || null}
         */
        this.UserAccount = null;

        /**
         * Account password. Use CreatePresetKey to get publick key to encrypt the password.
         * @type {string || null}
         */
        this.UserPassword = null;

        /**
         * Team ID
         * @type {string || null}
         */
        this.TeamId = null;

        /**
         * Team role
         * @type {number || null}
         */
        this.RoleId = null;

        /**
         * Call CreatePresetKey to get the keyID from RequestId
         * @type {string || null}
         */
        this.KeyId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.UserName = 'UserName' in params ? params.UserName : null;
        this.UserAccount = 'UserAccount' in params ? params.UserAccount : null;
        this.UserPassword = 'UserPassword' in params ? params.UserPassword : null;
        this.TeamId = 'TeamId' in params ? params.TeamId : null;
        this.RoleId = 'RoleId' in params ? params.RoleId : null;
        this.KeyId = 'KeyId' in params ? params.KeyId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * Team member information
 * @class
 */
class DescribeTeamMembersInfoResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * User ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.UserId = null;

        /**
         * User account
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.UserAccount = null;

        /**
         * Username
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.UserName = null;

        /**
         * Role
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.UserRoles = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.UserId = 'UserId' in params ? params.UserId : null;
        this.UserAccount = 'UserAccount' in params ? params.UserAccount : null;
        this.UserName = 'UserName' in params ? params.UserName : null;
        this.UserRoles = 'UserRoles' in params ? params.UserRoles : null;

    }
}

/**
 * DescribeRoleList response structure.
 * @class
 */
class DescribeRoleListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {DescribeRoleListResp || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new DescribeRoleListResp();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CreateMNPVersion request structure.
 * @class
 */
class CreateMNPVersionRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program ID
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Version number
         * @type {string || null}
         */
        this.MNPVersion = null;

        /**
         * Address of the mini program package. You can export the package from IDE and upload it to a file server. 
         * @type {string || null}
         */
        this.FileUrl = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * Version introduction
         * @type {string || null}
         */
        this.MNPVersionIntro = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.MNPVersion = 'MNPVersion' in params ? params.MNPVersion : null;
        this.FileUrl = 'FileUrl' in params ? params.FileUrl : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;
        this.MNPVersionIntro = 'MNPVersionIntro' in params ? params.MNPVersionIntro : null;

    }
}

/**
 * Mini program list
 * @class
 */
class DescribeMNPListData extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program ID
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Mini program icon
         * @type {string || null}
         */
        this.MNPIcon = null;

        /**
         * Mini program name
         * @type {string || null}
         */
        this.MNPName = null;

        /**
         * Name of the associated team
         * @type {string || null}
         */
        this.TeamName = null;

        /**
         * Mini program type
         * @type {string || null}
         */
        this.MNPType = null;

        /**
         * Whether the mini program is submitted to the application. 1: Submitted; 2: Removed
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.Status = null;

        /**
         * Mini program introduction
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPIntro = null;

        /**
         * Creator
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CreateUser = null;

        /**
         * Creation time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CreateTime = null;

        /**
         * Updater
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.UpdateUser = null;

        /**
         * Update time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.UpdateTime = null;

        /**
         * Application name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationName = null;

        /**
         * Effective status of the bound application. 1: Not effective; 2: Effective
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.EffectStatus = null;

        /**
         * ID of the application bound with the mini program
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.EffectMNPVersionId = null;

        /**
         * Effective version number of the application that bound with the mini program
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.EffectMNPVersion = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.MNPIcon = 'MNPIcon' in params ? params.MNPIcon : null;
        this.MNPName = 'MNPName' in params ? params.MNPName : null;
        this.TeamName = 'TeamName' in params ? params.TeamName : null;
        this.MNPType = 'MNPType' in params ? params.MNPType : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.MNPIntro = 'MNPIntro' in params ? params.MNPIntro : null;
        this.CreateUser = 'CreateUser' in params ? params.CreateUser : null;
        this.CreateTime = 'CreateTime' in params ? params.CreateTime : null;
        this.UpdateUser = 'UpdateUser' in params ? params.UpdateUser : null;
        this.UpdateTime = 'UpdateTime' in params ? params.UpdateTime : null;
        this.ApplicationName = 'ApplicationName' in params ? params.ApplicationName : null;
        this.EffectStatus = 'EffectStatus' in params ? params.EffectStatus : null;
        this.EffectMNPVersionId = 'EffectMNPVersionId' in params ? params.EffectMNPVersionId : null;
        this.EffectMNPVersion = 'EffectMNPVersion' in params ? params.EffectMNPVersion : null;

    }
}

/**
 * ModifyOnlineVersion response structure.
 * @class
 */
class ModifyOnlineVersionResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {BooleanInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new BooleanInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeMNPDetail request structure.
 * @class
 */
class DescribeMNPDetailRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program ID
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * DeleteSensitiveAPI request structure.
 * @class
 */
class DeleteSensitiveAPIRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * API ID
         * @type {string || null}
         */
        this.ApiId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ApiId = 'ApiId' in params ? params.ApiId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * CreateSensitiveApiApply request structure.
 * @class
 */
class CreateSensitiveApiApplyRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Application ID
         * @type {string || null}
         */
        this.APIId = null;

        /**
         * Reason for application
         * @type {string || null}
         */
        this.ApplyReason = null;

        /**
         * Mini program ID
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.APIId = 'APIId' in params ? params.APIId : null;
        this.ApplyReason = 'ApplyReason' in params ? params.ApplyReason : null;
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * DescribeMNPApprovalList request structure.
 * @class
 */
class DescribeMNPApprovalListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Page offset
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Number of results per page
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * Approval status. 1: Processing; 2: Rejected; 3: Approved; 4 Cancelled
         * @type {Array.<number> || null}
         */
        this.ApprovalStatusList = null;

        /**
         * Keywords of the mini program name to search
         * @type {string || null}
         */
        this.Keyword = null;

        /**
         * Application ID
         * @type {string || null}
         */
        this.ApplicationId = null;

        /**
         * Team ID
         * @type {string || null}
         */
        this.TeamId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;
        this.ApprovalStatusList = 'ApprovalStatusList' in params ? params.ApprovalStatusList : null;
        this.Keyword = 'Keyword' in params ? params.Keyword : null;
        this.ApplicationId = 'ApplicationId' in params ? params.ApplicationId : null;
        this.TeamId = 'TeamId' in params ? params.TeamId : null;

    }
}

/**
 * ModifyMNPDomain request structure.
 * @class
 */
class ModifyMNPDomainRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program ID
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * Domain name list
         * @type {Array.<CreateDomainParam> || null}
         */
        this.Domain = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

        if (params.Domain) {
            this.Domain = new Array();
            for (let z in params.Domain) {
                let obj = new CreateDomainParam();
                obj.deserialize(params.Domain[z]);
                this.Domain.push(obj);
            }
        }

    }
}

/**
 * DescribeApplicationMNPVersionAuditList request structure.
 * @class
 */
class DescribeApplicationMNPVersionAuditListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Page offset
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Number of results per page
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * Approval status 1 Processing 2 Rejected 3 Approved 4 Cancelled
         * @type {Array.<number> || null}
         */
        this.AuditStatusList = null;

        /**
         * Keyword
         * @type {string || null}
         */
        this.Keyword = null;

        /**
         * Application ID
         * @type {string || null}
         */
        this.ApplicationId = null;

        /**
         * Team ID
         * @type {string || null}
         */
        this.TeamId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;
        this.AuditStatusList = 'AuditStatusList' in params ? params.AuditStatusList : null;
        this.Keyword = 'Keyword' in params ? params.Keyword : null;
        this.ApplicationId = 'ApplicationId' in params ? params.ApplicationId : null;
        this.TeamId = 'TeamId' in params ? params.TeamId : null;

    }
}

/**
 * ModifyApplicationAppKey response structure.
 * @class
 */
class ModifyApplicationAppKeyResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {BooleanInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new BooleanInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * General key, value map object
 * @class
 */
class SimpleStringKeyValue extends  AbstractModel {
    constructor(){
        super();

        /**
         * Key ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Key = null;

        /**
         * Text description
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Value = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Key = 'Key' in params ? params.Key : null;
        this.Value = 'Value' in params ? params.Value : null;

    }
}

/**
 * Mini program details
 * @class
 */
class MNPDetail extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program type 
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPType = null;

        /**
         * Mini program ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Mini program name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPName = null;

        /**
         * Mini program icon
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPIcon = null;

        /**
         * Mini program introduction
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPIntro = null;

        /**
         * Mini program description
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPDesc = null;

        /**
         * Creator account
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CreateUser = null;

        /**
         * Creation time, timestamp
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.CreateTime = null;

        /**
         * Online Status 0 Not Online, 1 Online
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.OnlineStatus = null;

        /**
         * Application information
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<ApplicationSimpleInfo> || null}
         */
        this.Applications = null;

        /**
         * Mini program tag
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<string> || null}
         */
        this.Tags = null;

        /**
         * Mini program status 1-Released 2-Removed
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.Status = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPType = 'MNPType' in params ? params.MNPType : null;
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.MNPName = 'MNPName' in params ? params.MNPName : null;
        this.MNPIcon = 'MNPIcon' in params ? params.MNPIcon : null;
        this.MNPIntro = 'MNPIntro' in params ? params.MNPIntro : null;
        this.MNPDesc = 'MNPDesc' in params ? params.MNPDesc : null;
        this.CreateUser = 'CreateUser' in params ? params.CreateUser : null;
        this.CreateTime = 'CreateTime' in params ? params.CreateTime : null;
        this.OnlineStatus = 'OnlineStatus' in params ? params.OnlineStatus : null;

        if (params.Applications) {
            this.Applications = new Array();
            for (let z in params.Applications) {
                let obj = new ApplicationSimpleInfo();
                obj.deserialize(params.Applications[z]);
                this.Applications.push(obj);
            }
        }
        this.Tags = 'Tags' in params ? params.Tags : null;
        this.Status = 'Status' in params ? params.Status : null;

    }
}

/**
 * New team member - Member information
 * @class
 */
class CreateTeamMemberInfoReq extends  AbstractModel {
    constructor(){
        super();

        /**
         * User ID
         * @type {string || null}
         */
        this.UserId = null;

        /**
         * User role ID
         * @type {number || null}
         */
        this.UserRoleId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.UserId = 'UserId' in params ? params.UserId : null;
        this.UserRoleId = 'UserRoleId' in params ? params.UserRoleId : null;

    }
}

/**
 * Response data of disabled domain names
 * @class
 */
class DisableEnterpriseDomainResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Result
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {boolean || null}
         */
        this.Result = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Result = 'Result' in params ? params.Result : null;

    }
}

/**
 * ModifyApplicationAppUrl response structure.
 * @class
 */
class ModifyApplicationAppUrlResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {BooleanInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new BooleanInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DisableTeamDomain response structure.
 * @class
 */
class DisableTeamDomainResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * 
         * @type {DisableEnterpriseDomainResp || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new DisableEnterpriseDomainResp();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeTempSecret4UploadFile2Cos request structure.
 * @class
 */
class DescribeTempSecret4UploadFile2CosRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Service name
         * @type {string || null}
         */
        this.BusinessName = null;

        /**
         * File suffix
         * @type {string || null}
         */
        this.Suffix = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.BusinessName = 'BusinessName' in params ? params.BusinessName : null;
        this.Suffix = 'Suffix' in params ? params.Suffix : null;

    }
}

/**
 * CreateUser response structure.
 * @class
 */
class CreateUserResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data, user ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {ResourceIdStringInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new ResourceIdStringInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeDomainTeamList response structure.
 * @class
 */
class DescribeDomainTeamListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {DescribeDomainTeamListPageResp || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new DescribeDomainTeamListPageResp();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Sensitive API approval info page
 * @class
 */
class SensitiveApiAuditInfoPageResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of entries
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List information
         * @type {Array.<SensitiveApiAuditInfoResp> || null}
         */
        this.DataList = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.DataList) {
            this.DataList = new Array();
            for (let z in params.DataList) {
                let obj = new SensitiveApiAuditInfoResp();
                obj.deserialize(params.DataList[z]);
                this.DataList.push(obj);
            }
        }

    }
}

/**
 * ModifyMNPDomain response structure.
 * @class
 */
class ModifyMNPDomainResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {BooleanInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new BooleanInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeApplicationConfigFile request structure.
 * @class
 */
class DescribeApplicationConfigFileRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Application ID
         * @type {string || null}
         */
        this.ApplicationId = null;

        /**
         * Application platform. 2: Android; 3: iOS
         * @type {number || null}
         */
        this.AppType = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ApplicationId = 'ApplicationId' in params ? params.ApplicationId : null;
        this.AppType = 'AppType' in params ? params.AppType : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * DescribeSimpleTeamList request structure.
 * @class
 */
class DescribeSimpleTeamListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * Team permission type 1. Mini program management 2 Application management
         * @type {Array.<number> || null}
         */
        this.TeamRoleTypeList = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;
        this.TeamRoleTypeList = 'TeamRoleTypeList' in params ? params.TeamRoleTypeList : null;

    }
}

/**
 * DescribeUserList request structure.
 * @class
 */
class DescribeUserListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Page offset
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Number of results per page
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * Keywords for search (username or account)
         * @type {string || null}
         */
        this.Keyword = null;

        /**
         * User account 1 - Super Admin 2 - Platform Admin 3 - Ordinary member
         * @type {number || null}
         */
        this.AccountType = null;

        /**
         * Team ID
         * @type {string || null}
         */
        this.TeamId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;
        this.Keyword = 'Keyword' in params ? params.Keyword : null;
        this.AccountType = 'AccountType' in params ? params.AccountType : null;
        this.TeamId = 'TeamId' in params ? params.TeamId : null;

    }
}

/**
 * DeleteUser response structure.
 * @class
 */
class DeleteUserResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {BooleanInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new BooleanInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CreatePlatformAudit response structure.
 * @class
 */
class CreatePlatformAuditResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {BooleanInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new BooleanInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeOnlineVersion response structure.
 * @class
 */
class DescribeOnlineVersionResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {DescribeRevertOnlineVersionPageResp || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new DescribeRevertOnlineVersionPageResp();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeApplication response structure.
 * @class
 */
class DescribeApplicationResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {ApplicationDetail || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new ApplicationDetail();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CheckGlobalDomain response structure.
 * @class
 */
class CheckGlobalDomainResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {GlobalDomainCheckResp || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new GlobalDomainCheckResp();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeDomainInfo response structure.
 * @class
 */
class DescribeDomainInfoResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<DescribeDomainInfoParam> || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            this.Data = new Array();
            for (let z in params.Data) {
                let obj = new DescribeDomainInfoParam();
                obj.deserialize(params.Data[z]);
                this.Data.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Response of creating a mini program version
 * @class
 */
class CreateMNPVersionResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of the task to create a mini program version
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.TaskId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskId = 'TaskId' in params ? params.TaskId : null;

    }
}

/**
 * CreateGlobalDomain response structure.
 * @class
 */
class CreateGlobalDomainResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {CreateGlobalDomainResp || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new CreateGlobalDomainResp();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Domain information
 * @class
 */
class DescribeDomainInfoParam extends  AbstractModel {
    constructor(){
        super();

        /**
         * Multiple domain separators ';'
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.DomainUrl = null;

        /**
         * Domain type 1-requests domain 2-WebView load domain
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.DomainType = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.DomainUrl = 'DomainUrl' in params ? params.DomainUrl : null;
        this.DomainType = 'DomainType' in params ? params.DomainType : null;

    }
}

/**
 * CreateMNPApproval response structure.
 * @class
 */
class CreateMNPApprovalResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {BooleanInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new BooleanInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * List of mini program approval requests of the application
 * @class
 */
class DescribeMNPApprovalListData extends  AbstractModel {
    constructor(){
        super();

        /**
         * Approval request ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApprovalNo = null;

        /**
         * Application ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationId = null;

        /**
         * Approval status : 1: Processing; 2: Rejected; 3: Approved; 4: Cancelled
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.ApprovalStatus = null;

        /**
         * Mini program ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Mini program version
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPVersion = null;

        /**
         * Mini program version ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.MNPVersionId = null;

        /**
         * Applicant
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplyUser = null;

        /**
         * Application time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplyTime = null;

        /**
         * Mini program name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPName = null;

        /**
         * Mini program icon
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPIcon = null;

        /**
         * Application name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationName = null;

        /**
         * Application icon
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationLogo = null;

        /**
         * Team ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.TeamId = null;

        /**
         * Team name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.TeamName = null;

        /**
         * Mini Program QR code
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPQrCodeUrl = null;

        /**
         * Mini program type
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPType = null;

        /**
         * Approver
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApprovalUser = null;

        /**
         * Approval time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApprovalTime = null;

        /**
         * Approval notes
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApprovalNote = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ApprovalNo = 'ApprovalNo' in params ? params.ApprovalNo : null;
        this.ApplicationId = 'ApplicationId' in params ? params.ApplicationId : null;
        this.ApprovalStatus = 'ApprovalStatus' in params ? params.ApprovalStatus : null;
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.MNPVersion = 'MNPVersion' in params ? params.MNPVersion : null;
        this.MNPVersionId = 'MNPVersionId' in params ? params.MNPVersionId : null;
        this.ApplyUser = 'ApplyUser' in params ? params.ApplyUser : null;
        this.ApplyTime = 'ApplyTime' in params ? params.ApplyTime : null;
        this.MNPName = 'MNPName' in params ? params.MNPName : null;
        this.MNPIcon = 'MNPIcon' in params ? params.MNPIcon : null;
        this.ApplicationName = 'ApplicationName' in params ? params.ApplicationName : null;
        this.ApplicationLogo = 'ApplicationLogo' in params ? params.ApplicationLogo : null;
        this.TeamId = 'TeamId' in params ? params.TeamId : null;
        this.TeamName = 'TeamName' in params ? params.TeamName : null;
        this.MNPQrCodeUrl = 'MNPQrCodeUrl' in params ? params.MNPQrCodeUrl : null;
        this.MNPType = 'MNPType' in params ? params.MNPType : null;
        this.ApprovalUser = 'ApprovalUser' in params ? params.ApprovalUser : null;
        this.ApprovalTime = 'ApprovalTime' in params ? params.ApprovalTime : null;
        this.ApprovalNote = 'ApprovalNote' in params ? params.ApprovalNote : null;

    }
}

/**
 * Unified operation success ID - integer
 * @class
 */
class ResourceIdInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Resource ID
0: No trial version currently available
1: A trial version is currently available and uploaded by the current user
2: A trial version is currently available and uploaded by another user
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.ResourceId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ResourceId = 'ResourceId' in params ? params.ResourceId : null;

    }
}

/**
 * DescribeMNPPreview response structure.
 * @class
 */
class DescribeMNPPreviewResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {DescribeMNPPreviewResp || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new DescribeMNPPreviewResp();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CreateGlobalDomain request structure.
 * @class
 */
class CreateGlobalDomainRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Domain name list
         * @type {Array.<string> || null}
         */
        this.DomainUrlList = null;

        /**
         * Domain type. 1: Allowed; 2: Blocked
         * @type {number || null}
         */
        this.DomainType = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.DomainUrlList = 'DomainUrlList' in params ? params.DomainUrlList : null;
        this.DomainType = 'DomainType' in params ? params.DomainType : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * DescribeMNPBoard response structure.
 * @class
 */
class DescribeMNPBoardResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<VersionBoardResp> || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            this.Data = new Array();
            for (let z in params.Data) {
                let obj = new VersionBoardResp();
                obj.deserialize(params.Data[z]);
                this.Data.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ModifyUser request structure.
 * @class
 */
class ModifyUserRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * User ID
         * @type {string || null}
         */
        this.UserId = null;

        /**
         * User name
         * @type {string || null}
         */
        this.UserName = null;

        /**
         * Account type 2 - Platform administrator 3 - Ordinary member
         * @type {number || null}
         */
        this.AccountType = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * Account
         * @type {string || null}
         */
        this.UserAccount = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.UserId = 'UserId' in params ? params.UserId : null;
        this.UserName = 'UserName' in params ? params.UserName : null;
        this.AccountType = 'AccountType' in params ? params.AccountType : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;
        this.UserAccount = 'UserAccount' in params ? params.UserAccount : null;

    }
}

/**
 * CreateMNP response structure.
 * @class
 */
class CreateMNPResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {ResourceIdStringInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new ResourceIdStringInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeTeamMembers response structure.
 * @class
 */
class DescribeTeamMembersResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {DescribeTeamMembersInfoPageResp || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new DescribeTeamMembersInfoPageResp();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * List of permission requests to allow a mini program calling sensitive APIs
 * @class
 */
class DescribeMNPSensitiveAPIPermissionApprovalListResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of entries
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List information
         * @type {Array.<DescribeMNPSensitiveAPIPermissionApprovalListData> || null}
         */
        this.DataList = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.DataList) {
            this.DataList = new Array();
            for (let z in params.DataList) {
                let obj = new DescribeMNPSensitiveAPIPermissionApprovalListData();
                obj.deserialize(params.DataList[z]);
                this.DataList.push(obj);
            }
        }

    }
}

/**
 * DescribeMNPDomainACL request structure.
 * @class
 */
class DescribeMNPDomainACLRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program ID
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * ProcessMNPApproval request structure.
 * @class
 */
class ProcessMNPApprovalRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Approval ID
         * @type {string || null}
         */
        this.ApprovalNo = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * Approval details
         * @type {Array.<ApprovalItem> || null}
         */
        this.ApprovalItems = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ApprovalNo = 'ApprovalNo' in params ? params.ApprovalNo : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

        if (params.ApprovalItems) {
            this.ApprovalItems = new Array();
            for (let z in params.ApprovalItems) {
                let obj = new ApprovalItem();
                obj.deserialize(params.ApprovalItems[z]);
                this.ApprovalItems.push(obj);
            }
        }

    }
}

/**
 * DescribeUserList response structure.
 * @class
 */
class DescribeUserListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {DescribeUserListResp || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new DescribeUserListResp();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * List of sensitive APIs of an application
 * @class
 */
class DescribeApplicationSensitiveAPIListData extends  AbstractModel {
    constructor(){
        super();

        /**
         * APIID
         * @type {string || null}
         */
        this.APIId = null;

        /**
         * API name
         * @type {string || null}
         */
        this.APIName = null;

        /**
         * API request method
         * @type {string || null}
         */
        this.APIMethod = null;

        /**
         * API description
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.APIDesc = null;

        /**
         * Creator
         * @type {string || null}
         */
        this.CreateUser = null;

        /**
         * Creation time
         * @type {string || null}
         */
        this.CreateTime = null;

        /**
         * Updater
         * @type {string || null}
         */
        this.UpdateUser = null;

        /**
         * Update time
         * @type {string || null}
         */
        this.UpdateTime = null;

        /**
         * Application ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationId = null;

        /**
         * Application name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationName = null;

        /**
         * Team ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.TeamId = null;

        /**
         * Team name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.TeamName = null;

        /**
         * Application icon
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationLogo = null;

        /**
         * API type. 1: System; 2: Custom
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.APIType = null;

        /**
         * API status. 0: Public; 1: Restricted
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.Status = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.APIId = 'APIId' in params ? params.APIId : null;
        this.APIName = 'APIName' in params ? params.APIName : null;
        this.APIMethod = 'APIMethod' in params ? params.APIMethod : null;
        this.APIDesc = 'APIDesc' in params ? params.APIDesc : null;
        this.CreateUser = 'CreateUser' in params ? params.CreateUser : null;
        this.CreateTime = 'CreateTime' in params ? params.CreateTime : null;
        this.UpdateUser = 'UpdateUser' in params ? params.UpdateUser : null;
        this.UpdateTime = 'UpdateTime' in params ? params.UpdateTime : null;
        this.ApplicationId = 'ApplicationId' in params ? params.ApplicationId : null;
        this.ApplicationName = 'ApplicationName' in params ? params.ApplicationName : null;
        this.TeamId = 'TeamId' in params ? params.TeamId : null;
        this.TeamName = 'TeamName' in params ? params.TeamName : null;
        this.ApplicationLogo = 'ApplicationLogo' in params ? params.ApplicationLogo : null;
        this.APIType = 'APIType' in params ? params.APIType : null;
        this.Status = 'Status' in params ? params.Status : null;

    }
}

/**
 * Application information
 * @class
 */
class ApplicationInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Platform ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CustomerID = null;

        /**
         * Application ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationID = null;

        /**
         * Product ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.AppIdentityID = null;

        /**
         * Name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationName = null;

        /**
         * English name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationEnglishName = null;

        /**
         * Icon
         * @type {string || null}
         */
        this.Logo = null;

        /**
         * Remarks
         * @type {string || null}
         */
        this.Remark = null;

        /**
         * Android package name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.AndroidAppKey = null;

        /**
         * iOS bundleId
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.IosAppKey = null;

        /**
         * Creator
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CreateUser = null;

        /**
         * Creation time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CreateTime = null;

        /**
         * Updater
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.UpdateUser = null;

        /**
         * Update date
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.UpdateTime = null;

        /**
         * Introduction
         * @type {string || null}
         */
        this.Intro = null;

        /**
         * iOS app download address
         * @type {string || null}
         */
        this.IosAppUrl = null;

        /**
         * Android app download address
         * @type {string || null}
         */
        this.AndroidAppUrl = null;

        /**
         * Team ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.TeamId = null;

        /**
         * Team name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.TeamName = null;

        /**
         * Number of privacy APIs
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.SensitiveApiCount = null;

        /**
         * Application type 1-Test 2-Formal
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.ApplicationType = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.CustomerID = 'CustomerID' in params ? params.CustomerID : null;
        this.ApplicationID = 'ApplicationID' in params ? params.ApplicationID : null;
        this.AppIdentityID = 'AppIdentityID' in params ? params.AppIdentityID : null;
        this.ApplicationName = 'ApplicationName' in params ? params.ApplicationName : null;
        this.ApplicationEnglishName = 'ApplicationEnglishName' in params ? params.ApplicationEnglishName : null;
        this.Logo = 'Logo' in params ? params.Logo : null;
        this.Remark = 'Remark' in params ? params.Remark : null;
        this.AndroidAppKey = 'AndroidAppKey' in params ? params.AndroidAppKey : null;
        this.IosAppKey = 'IosAppKey' in params ? params.IosAppKey : null;
        this.CreateUser = 'CreateUser' in params ? params.CreateUser : null;
        this.CreateTime = 'CreateTime' in params ? params.CreateTime : null;
        this.UpdateUser = 'UpdateUser' in params ? params.UpdateUser : null;
        this.UpdateTime = 'UpdateTime' in params ? params.UpdateTime : null;
        this.Intro = 'Intro' in params ? params.Intro : null;
        this.IosAppUrl = 'IosAppUrl' in params ? params.IosAppUrl : null;
        this.AndroidAppUrl = 'AndroidAppUrl' in params ? params.AndroidAppUrl : null;
        this.TeamId = 'TeamId' in params ? params.TeamId : null;
        this.TeamName = 'TeamName' in params ? params.TeamName : null;
        this.SensitiveApiCount = 'SensitiveApiCount' in params ? params.SensitiveApiCount : null;
        this.ApplicationType = 'ApplicationType' in params ? params.ApplicationType : null;

    }
}

/**
 * CreateGlobalDomainACL response structure.
 * @class
 */
class CreateGlobalDomainACLResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {CreateGlobalDomainResp || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new CreateGlobalDomainResp();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Team domain name list
 * @class
 */
class DescribeTeamDomainListPageResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of entries
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List information
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<DescribeTeamDomainListInfoResp> || null}
         */
        this.DataList = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.DataList) {
            this.DataList = new Array();
            for (let z in params.DataList) {
                let obj = new DescribeTeamDomainListInfoResp();
                obj.deserialize(params.DataList[z]);
                this.DataList.push(obj);
            }
        }

    }
}

/**
 * ProcessMNPSensitiveAPIPermissionApproval request structure.
 * @class
 */
class ProcessMNPSensitiveAPIPermissionApprovalRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Approval ID
         * @type {string || null}
         */
        this.ApprovalNo = null;

        /**
         * Approval status. 20: Rejected; 30: Approved
         * @type {number || null}
         */
        this.ApprovalStatus = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * Approval notes
         * @type {string || null}
         */
        this.ApprovalNote = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ApprovalNo = 'ApprovalNo' in params ? params.ApprovalNo : null;
        this.ApprovalStatus = 'ApprovalStatus' in params ? params.ApprovalStatus : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;
        this.ApprovalNote = 'ApprovalNote' in params ? params.ApprovalNote : null;

    }
}

/**
 * ModifyUserPassword response structure.
 * @class
 */
class ModifyUserPasswordResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {BooleanInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new BooleanInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Mini program management page list
 * @class
 */
class DescribeMNPManagerListData extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program ID
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Mini program icon
         * @type {string || null}
         */
        this.MNPIcon = null;

        /**
         * Mini program name
         * @type {string || null}
         */
        this.MNPName = null;

        /**
         * Team name
         * @type {string || null}
         */
        this.TeamName = null;

        /**
         * Access status 1-Not accessed 2-Accessed
         * @type {number || null}
         */
        this.AccessStatus = null;

        /**
         * Mini program release status. 1: Released; 2: Removed
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.Status = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.MNPIcon = 'MNPIcon' in params ? params.MNPIcon : null;
        this.MNPName = 'MNPName' in params ? params.MNPName : null;
        this.TeamName = 'TeamName' in params ? params.TeamName : null;
        this.AccessStatus = 'AccessStatus' in params ? params.AccessStatus : null;
        this.Status = 'Status' in params ? params.Status : null;

    }
}

/**
 * CreateDomain response structure.
 * @class
 */
class CreateDomainResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {BooleanInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new BooleanInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * List of sensitive APIs that can be called by a mini program
 * @class
 */
class DescribeMNPSensitiveAPIPermissionListData extends  AbstractModel {
    constructor(){
        super();

        /**
         * API ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.APIId = null;

        /**
         * API name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.APIName = null;

        /**
         * API request method
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.APIMethod = null;

        /**
         * API status
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.APIStatus = null;

        /**
         * API application status
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.APIApplyStatus = null;

        /**
         * Reason for rejection
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.RejectReason = null;

        /**
         * Approval ID
         * @type {string || null}
         */
        this.ApprovalNo = null;

        /**
         * Application ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationId = null;

        /**
         * Application icon
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationIcon = null;

        /**
         * Application name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationName = null;

        /**
         * API type. 1: System; 2: Custom
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.APIType = null;

        /**
         * API feature description
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.APIDesc = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.APIId = 'APIId' in params ? params.APIId : null;
        this.APIName = 'APIName' in params ? params.APIName : null;
        this.APIMethod = 'APIMethod' in params ? params.APIMethod : null;
        this.APIStatus = 'APIStatus' in params ? params.APIStatus : null;
        this.APIApplyStatus = 'APIApplyStatus' in params ? params.APIApplyStatus : null;
        this.RejectReason = 'RejectReason' in params ? params.RejectReason : null;
        this.ApprovalNo = 'ApprovalNo' in params ? params.ApprovalNo : null;
        this.ApplicationId = 'ApplicationId' in params ? params.ApplicationId : null;
        this.ApplicationIcon = 'ApplicationIcon' in params ? params.ApplicationIcon : null;
        this.ApplicationName = 'ApplicationName' in params ? params.ApplicationName : null;
        this.APIType = 'APIType' in params ? params.APIType : null;
        this.APIDesc = 'APIDesc' in params ? params.APIDesc : null;

    }
}

/**
 * Sensitive API information
 * @class
 */
class SensitiveApiInfoResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * APIID
         * @type {string || null}
         */
        this.ApiId = null;

        /**
         * API name
         * @type {string || null}
         */
        this.ApiName = null;

        /**
         * API method
         * @type {string || null}
         */
        this.ApiMethod = null;

        /**
         * API description
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApiDesc = null;

        /**
         * Creator
         * @type {string || null}
         */
        this.CreateUser = null;

        /**
         * Creation time
         * @type {string || null}
         */
        this.CreateTime = null;

        /**
         * Updater
         * @type {string || null}
         */
        this.UpdateUser = null;

        /**
         * Update date
         * @type {string || null}
         */
        this.UpdateTime = null;

        /**
         * Application ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationId = null;

        /**
         * Application name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationName = null;

        /**
         * Team ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.TeamId = null;

        /**
         * Team name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.TeamName = null;

        /**
         * Application icon
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationLogo = null;

        /**
         * API type 1 - System API 2 Custom API
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.APIType = null;

        /**
         * API status 0 Public 1 Restricted
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.Status = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ApiId = 'ApiId' in params ? params.ApiId : null;
        this.ApiName = 'ApiName' in params ? params.ApiName : null;
        this.ApiMethod = 'ApiMethod' in params ? params.ApiMethod : null;
        this.ApiDesc = 'ApiDesc' in params ? params.ApiDesc : null;
        this.CreateUser = 'CreateUser' in params ? params.CreateUser : null;
        this.CreateTime = 'CreateTime' in params ? params.CreateTime : null;
        this.UpdateUser = 'UpdateUser' in params ? params.UpdateUser : null;
        this.UpdateTime = 'UpdateTime' in params ? params.UpdateTime : null;
        this.ApplicationId = 'ApplicationId' in params ? params.ApplicationId : null;
        this.ApplicationName = 'ApplicationName' in params ? params.ApplicationName : null;
        this.TeamId = 'TeamId' in params ? params.TeamId : null;
        this.TeamName = 'TeamName' in params ? params.TeamName : null;
        this.ApplicationLogo = 'ApplicationLogo' in params ? params.ApplicationLogo : null;
        this.APIType = 'APIType' in params ? params.APIType : null;
        this.Status = 'Status' in params ? params.Status : null;

    }
}

/**
 * DescribeSensitiveApiAuthList response structure.
 * @class
 */
class DescribeSensitiveApiAuthListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Note: This field may return null, indicating that no valid values can be obtained.
         * @type {DescribeSensitiveApiAuthPageParam || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new DescribeSensitiveApiAuthPageParam();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeMNPOfflinePackageURL response structure.
 * @class
 */
class DescribeMNPOfflinePackageURLResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {StringData || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new StringData();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ModifyDomain request structure.
 * @class
 */
class ModifyDomainRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program ID
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * Domain name list
         * @type {Array.<CreateDomainParam> || null}
         */
        this.Domain = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

        if (params.Domain) {
            this.Domain = new Array();
            for (let z in params.Domain) {
                let obj = new CreateDomainParam();
                obj.deserialize(params.Domain[z]);
                this.Domain.push(obj);
            }
        }

    }
}

/**
 * Approval information
 * @class
 */
class AuditInfoReq extends  AbstractModel {
    constructor(){
        super();

        /**
         * Application ID
         * @type {string || null}
         */
        this.ApplicationId = null;

        /**
         * Approval status 2- Rejected
3 - Approved
         * @type {number || null}
         */
        this.AuditStatus = null;

        /**
         * Approval description

         * @type {string || null}
         */
        this.AuditNote = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ApplicationId = 'ApplicationId' in params ? params.ApplicationId : null;
        this.AuditStatus = 'AuditStatus' in params ? params.AuditStatus : null;
        this.AuditNote = 'AuditNote' in params ? params.AuditNote : null;

    }
}

/**
 * DescribeConsoleMNPVersionCompileTask response structure.
 * @class
 */
class DescribeConsoleMNPVersionCompileTaskResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response
         * @type {DescribeMNPVersionCompileTaskResp || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new DescribeMNPVersionCompileTaskResp();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Compilation task
 * @class
 */
class CreateMNPVersionCompileTaskResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Task ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.TaskId = null;

        /**
         * WS address
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.WSUrl = null;

        /**
         * Room ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.RoomId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TaskId = 'TaskId' in params ? params.TaskId : null;
        this.WSUrl = 'WSUrl' in params ? params.WSUrl : null;
        this.RoomId = 'RoomId' in params ? params.RoomId : null;

    }
}

/**
 * Response of global domain name modification
 * @class
 */
class GlobalDomainModifyRespResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * 0: Success; 1: Allowed domains exist; 2: Blocked domains exist
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.Result = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Result = 'Result' in params ? params.Result : null;

    }
}

/**
 * DisableApplicationSensitiveAPI request structure.
 * @class
 */
class DisableApplicationSensitiveAPIRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * API ID
         * @type {string || null}
         */
        this.APIId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;
        this.APIId = 'APIId' in params ? params.APIId : null;

    }
}

/**
 * DescribeApplicationSensitiveAPIList response structure.
 * @class
 */
class DescribeApplicationSensitiveAPIListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {DescribeApplicationSensitiveAPIListResp || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new DescribeApplicationSensitiveAPIListResp();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeSensitiveAPIList response structure.
 * @class
 */
class DescribeSensitiveAPIListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {SensitiveApiPageInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new SensitiveApiPageInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DeleteApplication request structure.
 * @class
 */
class DeleteApplicationRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Application ID
         * @type {string || null}
         */
        this.ApplicationId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ApplicationId = 'ApplicationId' in params ? params.ApplicationId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * DescribeGlobalDomainList response structure.
 * @class
 */
class DescribeGlobalDomainListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {GlobalDomainDescribeListPageResp || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new GlobalDomainDescribeListPageResp();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeSensitiveAPIAuditList response structure.
 * @class
 */
class DescribeSensitiveAPIAuditListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {SensitiveApiAuditInfoPageResp || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new SensitiveApiAuditInfoPageResp();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeUser request structure.
 * @class
 */
class DescribeUserRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * User ID
         * @type {string || null}
         */
        this.UserId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.UserId = 'UserId' in params ? params.UserId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * DescribeMNPManagerDetail request structure.
 * @class
 */
class DescribeMNPManagerDetailRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program ID
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * ModifyGlobalDomain request structure.
 * @class
 */
class ModifyGlobalDomainRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Domain ID
         * @type {number || null}
         */
        this.DomainId = null;

        /**
         * Domain name
         * @type {string || null}
         */
        this.DomainUrl = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.DomainId = 'DomainId' in params ? params.DomainId : null;
        this.DomainUrl = 'DomainUrl' in params ? params.DomainUrl : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * New sensitive APIs
 * @class
 */
class CreateSensitiveAPIReq extends  AbstractModel {
    constructor(){
        super();

        /**
         * API name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApiName = null;

        /**
         * API description
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApiDesc = null;

        /**
         * API type 1-System API 2-Custom API
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.ApiType = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ApiName = 'ApiName' in params ? params.ApiName : null;
        this.ApiDesc = 'ApiDesc' in params ? params.ApiDesc : null;
        this.ApiType = 'ApiType' in params ? params.ApiType : null;

    }
}

/**
 * DescribeMNPReleasedVersionHistory request structure.
 * @class
 */
class DescribeMNPReleasedVersionHistoryRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program ID
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * DescribeMNPSensitiveAPIPermissionList response structure.
 * @class
 */
class DescribeMNPSensitiveAPIPermissionListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response parameters
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {DescribeMNPSensitiveAPIPermissionListResp || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new DescribeMNPSensitiveAPIPermissionListResp();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * AddTeamMember response structure.
 * @class
 */
class AddTeamMemberResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {BooleanInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new BooleanInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeMNP response structure.
 * @class
 */
class DescribeMNPResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {DescribeMNPManagerDetailData || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new DescribeMNPManagerDetailData();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CreateTeam response structure.
 * @class
 */
class CreateTeamResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CreateMNPSensitiveAPIPermissionApproval response structure.
 * @class
 */
class CreateMNPSensitiveAPIPermissionApprovalResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {ResourceIdStringInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new ResourceIdStringInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * RollbackMNPVersion request structure.
 * @class
 */
class RollbackMNPVersionRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program ID
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Mini program version ID
         * @type {number || null}
         */
        this.MNPVersionId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * Mini program version number
         * @type {string || null}
         */
        this.MNPVersion = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.MNPVersionId = 'MNPVersionId' in params ? params.MNPVersionId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;
        this.MNPVersion = 'MNPVersion' in params ? params.MNPVersion : null;

    }
}

/**
 * ModifyPlatformAuditStatus request structure.
 * @class
 */
class ModifyPlatformAuditStatusRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Approval ticket ID
         * @type {string || null}
         */
        this.AuditNo = null;

        /**
         * Approval result
         * @type {number || null}
         */
        this.AuditResult = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * Approval description
         * @type {string || null}
         */
        this.AuditNote = null;

        /**
         * Approval details
         * @type {Array.<AuditInfoReq> || null}
         */
        this.AuditItems = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.AuditNo = 'AuditNo' in params ? params.AuditNo : null;
        this.AuditResult = 'AuditResult' in params ? params.AuditResult : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;
        this.AuditNote = 'AuditNote' in params ? params.AuditNote : null;

        if (params.AuditItems) {
            this.AuditItems = new Array();
            for (let z in params.AuditItems) {
                let obj = new AuditInfoReq();
                obj.deserialize(params.AuditItems[z]);
                this.AuditItems.push(obj);
            }
        }

    }
}

/**
 * ModifyMNP request structure.
 * @class
 */
class ModifyMNPRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program type
         * @type {string || null}
         */
        this.MNPType = null;

        /**
         * Mini program name
         * @type {string || null}
         */
        this.MNPName = null;

        /**
         * Mini program introduction
         * @type {string || null}
         */
        this.MNPIntro = null;

        /**
         * Mini program description
         * @type {string || null}
         */
        this.MNPDesc = null;

        /**
         * Mini program ID
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * Mini program icon
         * @type {string || null}
         */
        this.MNPIcon = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPType = 'MNPType' in params ? params.MNPType : null;
        this.MNPName = 'MNPName' in params ? params.MNPName : null;
        this.MNPIntro = 'MNPIntro' in params ? params.MNPIntro : null;
        this.MNPDesc = 'MNPDesc' in params ? params.MNPDesc : null;
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;
        this.MNPIcon = 'MNPIcon' in params ? params.MNPIcon : null;

    }
}

/**
 * CreateMNPDomainACL request structure.
 * @class
 */
class CreateMNPDomainACLRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program ID
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Domain name list
         * @type {Array.<CreateDomainParam> || null}
         */
        this.Domain = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPId = 'MNPId' in params ? params.MNPId : null;

        if (params.Domain) {
            this.Domain = new Array();
            for (let z in params.Domain) {
                let obj = new CreateDomainParam();
                obj.deserialize(params.Domain[z]);
                this.Domain.push(obj);
            }
        }
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * Team details
 * @class
 */
class DescribeTeamDetailResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Team name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.TeamName = null;

        /**
         * Team role type 1-Mini program team 2-Application team
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.TeamRoleType = null;

        /**
         * Admin account
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.AdminUserAccount = null;

        /**
         * Creator
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CreateUser = null;

        /**
         * Creation time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CreateTime = null;

        /**
         * Number of team members
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.MemberCount = null;

        /**
         * Number of bound mini program teams
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.BindMiniTeamCount = null;

        /**
         * Name of the bound team
         * @type {string || null}
         */
        this.BindTeamName = null;

        /**
         * Team registration link
         * @type {string || null}
         */
        this.RegisterLink = null;

        /**
         * Application name. It’s required when querying details of a mini program team.
         * @type {string || null}
         */
        this.ApplicationName = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TeamName = 'TeamName' in params ? params.TeamName : null;
        this.TeamRoleType = 'TeamRoleType' in params ? params.TeamRoleType : null;
        this.AdminUserAccount = 'AdminUserAccount' in params ? params.AdminUserAccount : null;
        this.CreateUser = 'CreateUser' in params ? params.CreateUser : null;
        this.CreateTime = 'CreateTime' in params ? params.CreateTime : null;
        this.MemberCount = 'MemberCount' in params ? params.MemberCount : null;
        this.BindMiniTeamCount = 'BindMiniTeamCount' in params ? params.BindMiniTeamCount : null;
        this.BindTeamName = 'BindTeamName' in params ? params.BindTeamName : null;
        this.RegisterLink = 'RegisterLink' in params ? params.RegisterLink : null;
        this.ApplicationName = 'ApplicationName' in params ? params.ApplicationName : null;

    }
}

/**
 * RollbackMNPVersion response structure.
 * @class
 */
class RollbackMNPVersionResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {BooleanInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new BooleanInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeMNPVersionPreview request structure.
 * @class
 */
class DescribeMNPVersionPreviewRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program ID
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Mini program version ID
         * @type {number || null}
         */
        this.MNPVersionId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.MNPVersionId = 'MNPVersionId' in params ? params.MNPVersionId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * DescribeUserDetail response structure.
 * @class
 */
class DescribeUserDetailResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {DescribeUserDetailResp || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new DescribeUserDetailResp();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CreateTeam request structure.
 * @class
 */
class CreateTeamRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Team name
         * @type {string || null}
         */
        this.TeamName = null;

        /**
         * Administrator name
         * @type {string || null}
         */
        this.AdminUserId = null;

        /**
         * Permission assigned to the team. 1: Mini program; 2: Application (only one of these types is supported)
         * @type {Array.<number> || null}
         */
        this.TeamRoleTypeList = null;

        /**
         * Remarks
         * @type {string || null}
         */
        this.Remark = null;

        /**
         * Platform ID, required for API call
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * Associated team ID
         * @type {string || null}
         */
        this.RelatedTeamId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TeamName = 'TeamName' in params ? params.TeamName : null;
        this.AdminUserId = 'AdminUserId' in params ? params.AdminUserId : null;
        this.TeamRoleTypeList = 'TeamRoleTypeList' in params ? params.TeamRoleTypeList : null;
        this.Remark = 'Remark' in params ? params.Remark : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;
        this.RelatedTeamId = 'RelatedTeamId' in params ? params.RelatedTeamId : null;

    }
}

/**
 * CreateDomain request structure.
 * @class
 */
class CreateDomainRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program ID
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Domain name list
         * @type {Array.<CreateDomainParam> || null}
         */
        this.Domain = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPId = 'MNPId' in params ? params.MNPId : null;

        if (params.Domain) {
            this.Domain = new Array();
            for (let z in params.Domain) {
                let obj = new CreateDomainParam();
                obj.deserialize(params.Domain[z]);
                this.Domain.push(obj);
            }
        }
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * CreateApplicationSensitiveAPI request structure.
 * @class
 */
class CreateApplicationSensitiveAPIRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Application ID
         * @type {string || null}
         */
        this.ApplicationId = null;

        /**
         * List of newly-added APIs
         * @type {Array.<CreateApplicationSensitiveAPIReq> || null}
         */
        this.APIList = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ApplicationId = 'ApplicationId' in params ? params.ApplicationId : null;

        if (params.APIList) {
            this.APIList = new Array();
            for (let z in params.APIList) {
                let obj = new CreateApplicationSensitiveAPIReq();
                obj.deserialize(params.APIList[z]);
                this.APIList.push(obj);
            }
        }
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * List of sensitive APIs that can be called by a mini program
 * @class
 */
class DescribeMNPSensitiveAPIPermissionListResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of entries
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List data
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<DescribeMNPSensitiveAPIPermissionListData> || null}
         */
        this.DataList = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.DataList) {
            this.DataList = new Array();
            for (let z in params.DataList) {
                let obj = new DescribeMNPSensitiveAPIPermissionListData();
                obj.deserialize(params.DataList[z]);
                this.DataList.push(obj);
            }
        }

    }
}

/**
 * ReleaseMNPVersion request structure.
 * @class
 */
class ReleaseMNPVersionRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program version ID
         * @type {number || null}
         */
        this.MNPVersionId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPVersionId = 'MNPVersionId' in params ? params.MNPVersionId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * Role management list
 * @class
 */
class DescribeRoleListData extends  AbstractModel {
    constructor(){
        super();

        /**
         * Role ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.RoleId = null;

        /**
         * Role name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.RoleName = null;

        /**
         * Team name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.TeamName = null;

        /**
         * Creation time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CreateTime = null;

        /**
         * Role type 1-Preset role 2-Custom role
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.RoleType = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RoleId = 'RoleId' in params ? params.RoleId : null;
        this.RoleName = 'RoleName' in params ? params.RoleName : null;
        this.TeamName = 'TeamName' in params ? params.TeamName : null;
        this.CreateTime = 'CreateTime' in params ? params.CreateTime : null;
        this.RoleType = 'RoleType' in params ? params.RoleType : null;

    }
}

/**
 * String data object
 * @class
 */
class StringData extends  AbstractModel {
    constructor(){
        super();

        /**
         * String type response data
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Data = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Data = 'Data' in params ? params.Data : null;

    }
}

/**
 * CreateConsoleMNPVersionCompileTask request structure.
 * @class
 */
class CreateConsoleMNPVersionCompileTaskRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program ID
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Version
         * @type {string || null}
         */
        this.MNPVersion = null;

        /**
         * External URL of the document
         * @type {string || null}
         */
        this.FileUrl = null;

        /**
         * Internal URL of the document
         * @type {string || null}
         */
        this.FileInnerUrl = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * Type 2 Version
         * @type {number || null}
         */
        this.TaskType = null;

        /**
         * Version introduction
         * @type {string || null}
         */
        this.MNPVersionIntro = null;

        /**
         * Version description
         * @type {string || null}
         */
        this.MNPVersionDesc = null;

        /**
         * Type 1 Unencrypted 2 Encrypted 3 Source
         * @type {number || null}
         */
        this.SourceType = null;

        /**
         * Upload platform 1- TCMPP 2 WeChat 3. TCMPP + WeChat
         * @type {number || null}
         */
        this.ReleaseChannel = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.MNPVersion = 'MNPVersion' in params ? params.MNPVersion : null;
        this.FileUrl = 'FileUrl' in params ? params.FileUrl : null;
        this.FileInnerUrl = 'FileInnerUrl' in params ? params.FileInnerUrl : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;
        this.TaskType = 'TaskType' in params ? params.TaskType : null;
        this.MNPVersionIntro = 'MNPVersionIntro' in params ? params.MNPVersionIntro : null;
        this.MNPVersionDesc = 'MNPVersionDesc' in params ? params.MNPVersionDesc : null;
        this.SourceType = 'SourceType' in params ? params.SourceType : null;
        this.ReleaseChannel = 'ReleaseChannel' in params ? params.ReleaseChannel : null;

    }
}

/**
 * ModifyTeamMember response structure.
 * @class
 */
class ModifyTeamMemberResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {BooleanInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new BooleanInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Global domain name list
 * @class
 */
class DescribeGlobalDomainsResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of results
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * Domain name information
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<DescribeGlobalDomainsListData> || null}
         */
        this.DataList = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.DataList) {
            this.DataList = new Array();
            for (let z in params.DataList) {
                let obj = new DescribeGlobalDomainsListData();
                obj.deserialize(params.DataList[z]);
                this.DataList.push(obj);
            }
        }

    }
}

/**
 * DescribeTeamDomainList response structure.
 * @class
 */
class DescribeTeamDomainListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {DescribeTeamDomainListPageResp || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new DescribeTeamDomainListPageResp();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeMNPPrivacy request structure.
 * @class
 */
class DescribeMNPPrivacyRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program ID
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * List of global domain names
 * @class
 */
class GlobalDomainDescribeListInfoResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Domain ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.DomainId = null;

        /**
         * Platform ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CustomerID = null;

        /**
         * Domain name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.DomainURL = null;

        /**
         * Type. 1: Allowed; 2: Blocked
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.DomainType = null;

        /**
         * Creator
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CreateUser = null;

        /**
         * Creation time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CreateTime = null;

        /**
         * Updated by
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.UpdateUser = null;

        /**
         * Update date
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.UpdateTime = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.DomainId = 'DomainId' in params ? params.DomainId : null;
        this.CustomerID = 'CustomerID' in params ? params.CustomerID : null;
        this.DomainURL = 'DomainURL' in params ? params.DomainURL : null;
        this.DomainType = 'DomainType' in params ? params.DomainType : null;
        this.CreateUser = 'CreateUser' in params ? params.CreateUser : null;
        this.CreateTime = 'CreateTime' in params ? params.CreateTime : null;
        this.UpdateUser = 'UpdateUser' in params ? params.UpdateUser : null;
        this.UpdateTime = 'UpdateTime' in params ? params.UpdateTime : null;

    }
}

/**
 * List of mini program approval requests of an application
 * @class
 */
class DescribeMNPApprovalListResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of entries
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List information
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<DescribeMNPApprovalListData> || null}
         */
        this.DataList = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.DataList) {
            this.DataList = new Array();
            for (let z in params.DataList) {
                let obj = new DescribeMNPApprovalListData();
                obj.deserialize(params.DataList[z]);
                this.DataList.push(obj);
            }
        }

    }
}

/**
 * Details of a permission request to allow a mini program calling sensitive APIs
 * @class
 */
class DescribeMNPSensitiveAPIPermissionApprovalData extends  AbstractModel {
    constructor(){
        super();

        /**
         * API ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.APIId = null;

        /**
         * API request method
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.APIMethod = null;

        /**
         * Reason for the request
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplyReason = null;

        /**
         * Reason for rejection
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.RejectReason = null;

        /**
         * Approval status. 20: Rejected; 30: Approved
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.ApprovalStatus = null;

        /**
         * API feature description
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.APIDesc = null;

        /**
         * API type. 1: System; 2: Custom
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.APIType = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.APIId = 'APIId' in params ? params.APIId : null;
        this.APIMethod = 'APIMethod' in params ? params.APIMethod : null;
        this.ApplyReason = 'ApplyReason' in params ? params.ApplyReason : null;
        this.RejectReason = 'RejectReason' in params ? params.RejectReason : null;
        this.ApprovalStatus = 'ApprovalStatus' in params ? params.ApprovalStatus : null;
        this.APIDesc = 'APIDesc' in params ? params.APIDesc : null;
        this.APIType = 'APIType' in params ? params.APIType : null;

    }
}

/**
 * DescribeMNPSensitiveAPIPermissionApprovalList response structure.
 * @class
 */
class DescribeMNPSensitiveAPIPermissionApprovalListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {DescribeMNPSensitiveAPIPermissionApprovalListResp || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new DescribeMNPSensitiveAPIPermissionApprovalListResp();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Mini program online version ID
 * @class
 */
class QueryOnlineVersionResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Version
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPVersion = null;

        /**
         * Version ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.MNPVersionId = null;

        /**
         * Version note
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPVersionNote = null;

        /**
         * Update time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.UpdateTime = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.MNPVersion = 'MNPVersion' in params ? params.MNPVersion : null;
        this.MNPVersionId = 'MNPVersionId' in params ? params.MNPVersionId : null;
        this.MNPVersionNote = 'MNPVersionNote' in params ? params.MNPVersionNote : null;
        this.UpdateTime = 'UpdateTime' in params ? params.UpdateTime : null;

    }
}

/**
 * ModifyApplicationAppUrl request structure.
 * @class
 */
class ModifyApplicationAppUrlRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Application ID
         * @type {string || null}
         */
        this.ApplicationId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * Android address
         * @type {string || null}
         */
        this.AndroidAppURL = null;

        /**
         * iOS address
         * @type {string || null}
         */
        this.IOSAppURL = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ApplicationId = 'ApplicationId' in params ? params.ApplicationId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;
        this.AndroidAppURL = 'AndroidAppURL' in params ? params.AndroidAppURL : null;
        this.IOSAppURL = 'IOSAppURL' in params ? params.IOSAppURL : null;

    }
}

/**
 * DescribeMNPSensitiveAPIPermissionApprovalList request structure.
 * @class
 */
class DescribeMNPSensitiveAPIPermissionApprovalListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Page offset
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Number of results per page
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * Approval status. 1: Processing; 20: Rejected; 30: Approved
         * @type {Array.<number> || null}
         */
        this.ApprovalStatusList = null;

        /**
         * Keywords for search (API name, API method or application name)
         * @type {string || null}
         */
        this.Keyword = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;
        this.ApprovalStatusList = 'ApprovalStatusList' in params ? params.ApprovalStatusList : null;
        this.Keyword = 'Keyword' in params ? params.Keyword : null;

    }
}

/**
 * ConfigureMNPPreview request structure.
 * @class
 */
class ConfigureMNPPreviewRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program ID
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * 1: Set; 2: Cancel
         * @type {number || null}
         */
        this.ActionType = null;

        /**
         * Mini program version ID
         * @type {number || null}
         */
        this.MNPVersionId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * Path to the preview page
         * @type {string || null}
         */
        this.PreivewEntrancePath = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.ActionType = 'ActionType' in params ? params.ActionType : null;
        this.MNPVersionId = 'MNPVersionId' in params ? params.MNPVersionId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;
        this.PreivewEntrancePath = 'PreivewEntrancePath' in params ? params.PreivewEntrancePath : null;

    }
}

/**
 * CreatePlatformAudit request structure.
 * @class
 */
class CreatePlatformAuditRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program version ID
         * @type {number || null}
         */
        this.MNPVersionId = null;

        /**
         * submit - submit the review ticket, cancel - cancel the review ticket
         * @type {string || null}
         */
        this.ApplyAction = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPVersionId = 'MNPVersionId' in params ? params.MNPVersionId : null;
        this.ApplyAction = 'ApplyAction' in params ? params.ApplyAction : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * DescribeMNPOfflinePackageURL request structure.
 * @class
 */
class DescribeMNPOfflinePackageURLRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program ID
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * CreateMNP request structure.
 * @class
 */
class CreateMNPRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program type
         * @type {string || null}
         */
        this.MNPType = null;

        /**
         * Mini program name
         * @type {string || null}
         */
        this.MNPName = null;

        /**
         * Mini app icon
         * @type {string || null}
         */
        this.MNPIcon = null;

        /**
         * Mini program introduction
         * @type {string || null}
         */
        this.MNPIntro = null;

        /**
         * Mini program description
         * @type {string || null}
         */
        this.MNPDesc = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * Team ID
         * @type {string || null}
         */
        this.TeamId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPType = 'MNPType' in params ? params.MNPType : null;
        this.MNPName = 'MNPName' in params ? params.MNPName : null;
        this.MNPIcon = 'MNPIcon' in params ? params.MNPIcon : null;
        this.MNPIntro = 'MNPIntro' in params ? params.MNPIntro : null;
        this.MNPDesc = 'MNPDesc' in params ? params.MNPDesc : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;
        this.TeamId = 'TeamId' in params ? params.TeamId : null;

    }
}

/**
 * Mini program review list information
 * @class
 */
class DescribeApplicationMNPVersionAuditListInfoResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Approval ticket ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.AuditNo = null;

        /**
         * Application ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationId = null;

        /**
         * Approval status : 1: Processing; 2: Rejected; 3: Approved; 4: Cancelled
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.AuditStatus = null;

        /**
         * Mini program ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Mini program version
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPVersion = null;

        /**
         * Mini program version ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.MNPVersionId = null;

        /**
         * Applicant
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplyUser = null;

        /**
         * Application time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplyTime = null;

        /**
         * Mini program name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPName = null;

        /**
         * Mini program icon
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPIcon = null;

        /**
         * Application name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationName = null;

        /**
         * Application icon
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationLogo = null;

        /**
         * Team ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.TeamId = null;

        /**
         * Team name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.TeamName = null;

        /**
         * Android app download address
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationAndUrl = null;

        /**
         * iOS app download address
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationIOSUrl = null;

        /**
         * Mini Program QR code
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPQrCodeUrl = null;

        /**
         * Mini program type
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPType = null;

        /**
         * Approver
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.AuditUser = null;

        /**
         * Approval time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.AuditTime = null;

        /**
         * Approval notes
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.AuditNote = null;

        /**
         * Scan result. 0: Scanning, 1: Healthy; 2: Unhealthy; 3: Task failed
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.ScanStatus = null;

        /**
         * Scan score
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.ScanScore = null;

        /**
         * Address scanned
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ScanHtmlPath = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.AuditNo = 'AuditNo' in params ? params.AuditNo : null;
        this.ApplicationId = 'ApplicationId' in params ? params.ApplicationId : null;
        this.AuditStatus = 'AuditStatus' in params ? params.AuditStatus : null;
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.MNPVersion = 'MNPVersion' in params ? params.MNPVersion : null;
        this.MNPVersionId = 'MNPVersionId' in params ? params.MNPVersionId : null;
        this.ApplyUser = 'ApplyUser' in params ? params.ApplyUser : null;
        this.ApplyTime = 'ApplyTime' in params ? params.ApplyTime : null;
        this.MNPName = 'MNPName' in params ? params.MNPName : null;
        this.MNPIcon = 'MNPIcon' in params ? params.MNPIcon : null;
        this.ApplicationName = 'ApplicationName' in params ? params.ApplicationName : null;
        this.ApplicationLogo = 'ApplicationLogo' in params ? params.ApplicationLogo : null;
        this.TeamId = 'TeamId' in params ? params.TeamId : null;
        this.TeamName = 'TeamName' in params ? params.TeamName : null;
        this.ApplicationAndUrl = 'ApplicationAndUrl' in params ? params.ApplicationAndUrl : null;
        this.ApplicationIOSUrl = 'ApplicationIOSUrl' in params ? params.ApplicationIOSUrl : null;
        this.MNPQrCodeUrl = 'MNPQrCodeUrl' in params ? params.MNPQrCodeUrl : null;
        this.MNPType = 'MNPType' in params ? params.MNPType : null;
        this.AuditUser = 'AuditUser' in params ? params.AuditUser : null;
        this.AuditTime = 'AuditTime' in params ? params.AuditTime : null;
        this.AuditNote = 'AuditNote' in params ? params.AuditNote : null;
        this.ScanStatus = 'ScanStatus' in params ? params.ScanStatus : null;
        this.ScanScore = 'ScanScore' in params ? params.ScanScore : null;
        this.ScanHtmlPath = 'ScanHtmlPath' in params ? params.ScanHtmlPath : null;

    }
}

/**
 * DescribeTeam request structure.
 * @class
 */
class DescribeTeamRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Team ID
         * @type {string || null}
         */
        this.TeamId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TeamId = 'TeamId' in params ? params.TeamId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * DescribeApplicationConfig response structure.
 * @class
 */
class DescribeApplicationConfigResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {DownloadApplicationConfigResp || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new DownloadApplicationConfigResp();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ModifyDomain response structure.
 * @class
 */
class ModifyDomainResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {BooleanInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new BooleanInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Application details
 * @class
 */
class ApplicationDetail extends  AbstractModel {
    constructor(){
        super();

        /**
         * Application ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationID = null;

        /**
         * Product ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.AppIdentityID = null;

        /**
         * The application name.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationName = null;

        /**
         * English name of the application (this field is not used yet)
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationEnglishName = null;

        /**
         * Application icon
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Logo = null;

        /**
         * Remarks
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Remark = null;

        /**
         * Android package name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.AndroidAppKey = null;

        /**
         * iOS bundleId
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.IosAppKey = null;

        /**
         * Creator
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CreateUser = null;

        /**
         * The creation time.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CreateTime = null;

        /**
         * Updated by
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.UpdateUser = null;

        /**
         * Update date
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.UpdateTime = null;

        /**
         * Number of bound mini programs
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.BindMNPCount = null;

        /**
         * Information of bound mini programs
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<ApplicationMNPRelInfoResp> || null}
         */
        this.BindMNPList = null;

        /**
         * Application description
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Intro = null;

        /**
         * Android App download address
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.AndroidAppUrl = null;

        /**
         * iOS App download address
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.IosAppUrl = null;

        /**
         * Team ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.TeamId = null;

        /**
         * Team name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.TeamName = null;

        /**
         * Quantity of sensitive APIs
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.SensitiveApiCount = null;

        /**
         * Application type. 1: Test; 2: Formal
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.ApplicationType = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ApplicationID = 'ApplicationID' in params ? params.ApplicationID : null;
        this.AppIdentityID = 'AppIdentityID' in params ? params.AppIdentityID : null;
        this.ApplicationName = 'ApplicationName' in params ? params.ApplicationName : null;
        this.ApplicationEnglishName = 'ApplicationEnglishName' in params ? params.ApplicationEnglishName : null;
        this.Logo = 'Logo' in params ? params.Logo : null;
        this.Remark = 'Remark' in params ? params.Remark : null;
        this.AndroidAppKey = 'AndroidAppKey' in params ? params.AndroidAppKey : null;
        this.IosAppKey = 'IosAppKey' in params ? params.IosAppKey : null;
        this.CreateUser = 'CreateUser' in params ? params.CreateUser : null;
        this.CreateTime = 'CreateTime' in params ? params.CreateTime : null;
        this.UpdateUser = 'UpdateUser' in params ? params.UpdateUser : null;
        this.UpdateTime = 'UpdateTime' in params ? params.UpdateTime : null;
        this.BindMNPCount = 'BindMNPCount' in params ? params.BindMNPCount : null;

        if (params.BindMNPList) {
            this.BindMNPList = new Array();
            for (let z in params.BindMNPList) {
                let obj = new ApplicationMNPRelInfoResp();
                obj.deserialize(params.BindMNPList[z]);
                this.BindMNPList.push(obj);
            }
        }
        this.Intro = 'Intro' in params ? params.Intro : null;
        this.AndroidAppUrl = 'AndroidAppUrl' in params ? params.AndroidAppUrl : null;
        this.IosAppUrl = 'IosAppUrl' in params ? params.IosAppUrl : null;
        this.TeamId = 'TeamId' in params ? params.TeamId : null;
        this.TeamName = 'TeamName' in params ? params.TeamName : null;
        this.SensitiveApiCount = 'SensitiveApiCount' in params ? params.SensitiveApiCount : null;
        this.ApplicationType = 'ApplicationType' in params ? params.ApplicationType : null;

    }
}

/**
 * DescribeMNP request structure.
 * @class
 */
class DescribeMNPRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program ID
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * CreateUser request structure.
 * @class
 */
class CreateUserRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * User account
         * @type {string || null}
         */
        this.UserAccount = null;

        /**
         * User name
         * @type {string || null}
         */
        this.UserName = null;

        /**
         * User account type. 2: Platform administrator; 3: Ordinary member. 
         * @type {number || null}
         */
        this.AccountType = null;

        /**
         * Account password. Use CreatePresetKey to get the public key to encrypt the password.
         * @type {string || null}
         */
        this.Password = null;

        /**
         * Call CreatePresetKey to get the keyID from RequestId
         * @type {string || null}
         */
        this.KeyId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.UserAccount = 'UserAccount' in params ? params.UserAccount : null;
        this.UserName = 'UserName' in params ? params.UserName : null;
        this.AccountType = 'AccountType' in params ? params.AccountType : null;
        this.Password = 'Password' in params ? params.Password : null;
        this.KeyId = 'KeyId' in params ? params.KeyId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * DescribeGlobalDomainList request structure.
 * @class
 */
class DescribeGlobalDomainListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Pagination offset
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Number of results per page
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * Domain type. 1: Allowed; 2: Blocked
         * @type {Array.<number> || null}
         */
        this.DomainTypes = null;

        /**
         * Domain names to be queried.
         * @type {string || null}
         */
        this.Keyword = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;
        this.DomainTypes = 'DomainTypes' in params ? params.DomainTypes : null;
        this.Keyword = 'Keyword' in params ? params.Keyword : null;

    }
}

/**
 * Response of creating team member
 * @class
 */
class CreateTeamMemberInfoResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * User ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.UserId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.UserId = 'UserId' in params ? params.UserId : null;

    }
}

/**
 * Response of querying the trial version
 * @class
 */
class DescribeShowCaseResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Mini program name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPName = null;

        /**
         * Mini program description
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPDesc = null;

        /**
         * Mini program version
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPVersion = null;

        /**
         * Mini program introduction
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPVersionIntro = null;

        /**
         * Mini program QR code
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.QRCodeUrl = null;

        /**
         * Application information
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<ShowCaseRelAppInfo> || null}
         */
        this.AppList = null;

        /**
         * Path to the demo
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.TestEntrancePath = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.MNPName = 'MNPName' in params ? params.MNPName : null;
        this.MNPDesc = 'MNPDesc' in params ? params.MNPDesc : null;
        this.MNPVersion = 'MNPVersion' in params ? params.MNPVersion : null;
        this.MNPVersionIntro = 'MNPVersionIntro' in params ? params.MNPVersionIntro : null;
        this.QRCodeUrl = 'QRCodeUrl' in params ? params.QRCodeUrl : null;

        if (params.AppList) {
            this.AppList = new Array();
            for (let z in params.AppList) {
                let obj = new ShowCaseRelAppInfo();
                obj.deserialize(params.AppList[z]);
                this.AppList.push(obj);
            }
        }
        this.TestEntrancePath = 'TestEntrancePath' in params ? params.TestEntrancePath : null;

    }
}

/**
 * DescribeTeamMemberList request structure.
 * @class
 */
class DescribeTeamMemberListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Page offset
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Number of results per page
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * Team ID
         * @type {string || null}
         */
        this.TeamId = null;

        /**
         * Keywords for search (user name)
         * @type {string || null}
         */
        this.Keyword = null;

        /**
         * Role ID
         * @type {Array.<number> || null}
         */
        this.RoleIds = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;
        this.TeamId = 'TeamId' in params ? params.TeamId : null;
        this.Keyword = 'Keyword' in params ? params.Keyword : null;
        this.RoleIds = 'RoleIds' in params ? params.RoleIds : null;

    }
}

/**
 * Encryption key returned
 * @class
 */
class PresetResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * RSA encryption public key
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Key = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Key = 'Key' in params ? params.Key : null;

    }
}

/**
 * Information of team domains
 * @class
 */
class DescribeTeamDomainListInfoResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Domain ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.DomainId = null;

        /**
         * Mini program ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Mini program name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPName = null;

        /**
         * Domain name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.DomainUrl = null;

        /**
         * Type 
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.DomainType = null;

        /**
         * Domain name status. 1: Normal; 2: Disabled
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.Status = null;

        /**
         * Creator
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CreateUser = null;

        /**
         * The creation time.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CreateTime = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.DomainId = 'DomainId' in params ? params.DomainId : null;
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.MNPName = 'MNPName' in params ? params.MNPName : null;
        this.DomainUrl = 'DomainUrl' in params ? params.DomainUrl : null;
        this.DomainType = 'DomainType' in params ? params.DomainType : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.CreateUser = 'CreateUser' in params ? params.CreateUser : null;
        this.CreateTime = 'CreateTime' in params ? params.CreateTime : null;

    }
}

/**
 * DescribeMNPSensitiveAPIPermissionApproval response structure.
 * @class
 */
class DescribeMNPSensitiveAPIPermissionApprovalResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {DescribeMNPSensitiveAPIPermissionApprovalData || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new DescribeMNPSensitiveAPIPermissionApprovalData();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeApplicationConfig request structure.
 * @class
 */
class DescribeApplicationConfigRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Application ID
         * @type {string || null}
         */
        this.ApplicationId = null;

        /**
         * Application platform. 2: Android; 3: iOS
         * @type {number || null}
         */
        this.AppType = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ApplicationId = 'ApplicationId' in params ? params.ApplicationId : null;
        this.AppType = 'AppType' in params ? params.AppType : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * ModifyTeamMember request structure.
 * @class
 */
class ModifyTeamMemberRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Team ID
         * @type {string || null}
         */
        this.TeamId = null;

        /**
         * User ID
         * @type {string || null}
         */
        this.UserId = null;

        /**
         * Role ID.
         * @type {number || null}
         */
        this.RoleId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TeamId = 'TeamId' in params ? params.TeamId : null;
        this.UserId = 'UserId' in params ? params.UserId : null;
        this.RoleId = 'RoleId' in params ? params.RoleId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * List of global domain names
 * @class
 */
class DescribeGlobalDomainsListData extends  AbstractModel {
    constructor(){
        super();

        /**
         * Domain ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.DomainId = null;

        /**
         * Domain name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.DomainUrl = null;

        /**
         * Type. 1: Allowed; 2: Blocked
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.DomainType = null;

        /**
         * Creator
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CreateUser = null;

        /**
         * Creation time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CreateTime = null;

        /**
         * Updater
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.UpdateUser = null;

        /**
         * Update time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.UpdateTime = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.DomainId = 'DomainId' in params ? params.DomainId : null;
        this.DomainUrl = 'DomainUrl' in params ? params.DomainUrl : null;
        this.DomainType = 'DomainType' in params ? params.DomainType : null;
        this.CreateUser = 'CreateUser' in params ? params.CreateUser : null;
        this.CreateTime = 'CreateTime' in params ? params.CreateTime : null;
        this.UpdateUser = 'UpdateUser' in params ? params.UpdateUser : null;
        this.UpdateTime = 'UpdateTime' in params ? params.UpdateTime : null;

    }
}

/**
 * ModifyUser response structure.
 * @class
 */
class ModifyUserResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {BooleanInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new BooleanInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeConsoleMNPVersionCompileTask request structure.
 * @class
 */
class DescribeConsoleMNPVersionCompileTaskRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Task ID
         * @type {string || null}
         */
        this.BusinessId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.BusinessId = 'BusinessId' in params ? params.BusinessId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * Mini program details
 * @class
 */
class DescribeMNPManagerDetailData extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program type 
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPType = null;

        /**
         * Mini program ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Mini program name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPName = null;

        /**
         * Mini program icon
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPIcon = null;

        /**
         * Mini program introduction
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPIntro = null;

        /**
         * Mini program description
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPDesc = null;

        /**
         * Timestamp of the creation time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CreateTime = null;

        /**
         * Creator
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CreateUser = null;

        /**
         * Connection status. 1: Not connected; 2: Connected
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.AccessStatus = null;

        /**
         * The name of the associated team
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.TeamName = null;

        /**
         * Team ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.TeamId = null;

        /**
         * Mini program release status. 1: Released; 2: Removed
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.Status = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPType = 'MNPType' in params ? params.MNPType : null;
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.MNPName = 'MNPName' in params ? params.MNPName : null;
        this.MNPIcon = 'MNPIcon' in params ? params.MNPIcon : null;
        this.MNPIntro = 'MNPIntro' in params ? params.MNPIntro : null;
        this.MNPDesc = 'MNPDesc' in params ? params.MNPDesc : null;
        this.CreateTime = 'CreateTime' in params ? params.CreateTime : null;
        this.CreateUser = 'CreateUser' in params ? params.CreateUser : null;
        this.AccessStatus = 'AccessStatus' in params ? params.AccessStatus : null;
        this.TeamName = 'TeamName' in params ? params.TeamName : null;
        this.TeamId = 'TeamId' in params ? params.TeamId : null;
        this.Status = 'Status' in params ? params.Status : null;

    }
}

/**
 * Approval tickets of the specified application/mini program
 * @class
 */
class DescribeApplicationMNPVersionAuditListPageResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of results.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List information
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<DescribeApplicationMNPVersionAuditListInfoResp> || null}
         */
        this.DataList = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.DataList) {
            this.DataList = new Array();
            for (let z in params.DataList) {
                let obj = new DescribeApplicationMNPVersionAuditListInfoResp();
                obj.deserialize(params.DataList[z]);
                this.DataList.push(obj);
            }
        }

    }
}

/**
 * Information of the specified user
 * @class
 */
class DescribeUserListData extends  AbstractModel {
    constructor(){
        super();

        /**
         * User ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.UserId = null;

        /**
         * User account
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.UserAccount = null;

        /**
         * Associated team
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Teams = null;

        /**
         * Account type. 1: Super administrator; 2: Platform administrator; 3: Ordinary member
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.AccountType = null;

        /**
         * User name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.UserName = null;

        /**
         * Creation time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CreateTime = null;

        /**
         * Status. 1: Normal; 2: Disabled
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.Status = null;

        /**
         * Team name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.TeamName = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.UserId = 'UserId' in params ? params.UserId : null;
        this.UserAccount = 'UserAccount' in params ? params.UserAccount : null;
        this.Teams = 'Teams' in params ? params.Teams : null;
        this.AccountType = 'AccountType' in params ? params.AccountType : null;
        this.UserName = 'UserName' in params ? params.UserName : null;
        this.CreateTime = 'CreateTime' in params ? params.CreateTime : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.TeamName = 'TeamName' in params ? params.TeamName : null;

    }
}

/**
 * DescribeSensitiveApiApplyDetail request structure.
 * @class
 */
class DescribeSensitiveApiApplyDetailRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Approval ticket ID
         * @type {string || null}
         */
        this.AuditNo = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.AuditNo = 'AuditNo' in params ? params.AuditNo : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * CreateOnlineApply response structure.
 * @class
 */
class CreateOnlineApplyResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {BooleanInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new BooleanInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeApplication request structure.
 * @class
 */
class DescribeApplicationRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Application ID
         * @type {string || null}
         */
        this.ApplicationId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ApplicationId = 'ApplicationId' in params ? params.ApplicationId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * Information of sensitive APIs
 * @class
 */
class SensitiveApiPageInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of results.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List information
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<SensitiveApiInfoResp> || null}
         */
        this.DataList = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.DataList) {
            this.DataList = new Array();
            for (let z in params.DataList) {
                let obj = new SensitiveApiInfoResp();
                obj.deserialize(params.DataList[z]);
                this.DataList.push(obj);
            }
        }

    }
}

/**
 * CreateMNPVersion response structure.
 * @class
 */
class CreateMNPVersionResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {CreateMNPVersionResp || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new CreateMNPVersionResp();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ModifyMNP response structure.
 * @class
 */
class ModifyMNPResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {ResourceIdInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new ResourceIdInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeSimpleApplicationInfoList request structure.
 * @class
 */
class DescribeSimpleApplicationInfoListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Pagination offset
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Number of results per page
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * Query keywords (application name)
         * @type {string || null}
         */
        this.Keyword = null;

        /**
         * Whether TCMPP Assistant is loaded
         * @type {boolean || null}
         */
        this.LoadAssistantApp = null;

        /**
         * Mini program ID
         * @type {string || null}
         */
        this.MNPId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;
        this.Keyword = 'Keyword' in params ? params.Keyword : null;
        this.LoadAssistantApp = 'LoadAssistantApp' in params ? params.LoadAssistantApp : null;
        this.MNPId = 'MNPId' in params ? params.MNPId : null;

    }
}

/**
 * DisableTeamDomain request structure.
 * @class
 */
class DisableTeamDomainRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * 
         * @type {number || null}
         */
        this.DomainId = null;

        /**
         * 
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.DomainId = 'DomainId' in params ? params.DomainId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * DescribeMNPDomainACL response structure.
 * @class
 */
class DescribeMNPDomainACLResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<DescribeDomainInfoParam> || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            this.Data = new Array();
            for (let z in params.Data) {
                let obj = new DescribeDomainInfoParam();
                obj.deserialize(params.Data[z]);
                this.Data.push(obj);
            }
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * List of applications
 * @class
 */
class ApplicationPageInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of results.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List information
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<ApplicationInfo> || null}
         */
        this.DataList = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.DataList) {
            this.DataList = new Array();
            for (let z in params.DataList) {
                let obj = new ApplicationInfo();
                obj.deserialize(params.DataList[z]);
                this.DataList.push(obj);
            }
        }

    }
}

/**
 * CreateConsoleMNPVersionCompileTask response structure.
 * @class
 */
class CreateConsoleMNPVersionCompileTaskResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {CreateMNPVersionCompileTaskResp || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new CreateMNPVersionCompileTaskResp();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Task details
 * @class
 */
class DescribeMNPVersionCompileTaskResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Task ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.TaskId = null;

        /**
         * 1: Pending; 20: Running; 30: Failed; 60: Succeeded 
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.TaskStatus = null;

        /**
         * Task status message
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.TaskMsg = null;

        /**
         * QR code address
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.QrCodeUrl = null;

        /**
         * Packet size
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.PkgSize = null;

        /**
         * Subpackage information
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<DescribeMNPVersionCompileTaskSubSimpleInfo> || null}
         */
        this.SubPkgInfos = null;

        /**
         * QR code content
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.QrCodeContent = null;

        /**
         * Additional information
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {DescribeMNPVersionCompileTaskExtInfo || null}
         */
        this.ExtInfo = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.TaskId = 'TaskId' in params ? params.TaskId : null;
        this.TaskStatus = 'TaskStatus' in params ? params.TaskStatus : null;
        this.TaskMsg = 'TaskMsg' in params ? params.TaskMsg : null;
        this.QrCodeUrl = 'QrCodeUrl' in params ? params.QrCodeUrl : null;
        this.PkgSize = 'PkgSize' in params ? params.PkgSize : null;

        if (params.SubPkgInfos) {
            this.SubPkgInfos = new Array();
            for (let z in params.SubPkgInfos) {
                let obj = new DescribeMNPVersionCompileTaskSubSimpleInfo();
                obj.deserialize(params.SubPkgInfos[z]);
                this.SubPkgInfos.push(obj);
            }
        }
        this.QrCodeContent = 'QrCodeContent' in params ? params.QrCodeContent : null;

        if (params.ExtInfo) {
            let obj = new DescribeMNPVersionCompileTaskExtInfo();
            obj.deserialize(params.ExtInfo)
            this.ExtInfo = obj;
        }

    }
}

/**
 * Parameters to create a domain name
 * @class
 */
class CreateDomainParam extends  AbstractModel {
    constructor(){
        super();

        /**
         * Array of domain name URLs
         * @type {Array.<string> || null}
         */
        this.DomainUrlList = null;

        /**
         * Domain type. 1: requests domain; 2: WebView load domain, 3: sockets domain; 4: File upload; 5: File download
         * @type {number || null}
         */
        this.DomainType = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.DomainUrlList = 'DomainUrlList' in params ? params.DomainUrlList : null;
        this.DomainType = 'DomainType' in params ? params.DomainType : null;

    }
}

/**
 * List of teams
 * @class
 */
class DescribeTeamPageResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of results.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List information
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<DescribeTeamListInfoResp> || null}
         */
        this.DataList = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.DataList) {
            this.DataList = new Array();
            for (let z in params.DataList) {
                let obj = new DescribeTeamListInfoResp();
                obj.deserialize(params.DataList[z]);
                this.DataList.push(obj);
            }
        }

    }
}

/**
 * DescribeApplicationMNPVersionAuditList response structure.
 * @class
 */
class DescribeApplicationMNPVersionAuditListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {DescribeApplicationMNPVersionAuditListPageResp || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new DescribeApplicationMNPVersionAuditListPageResp();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Simple information of the application
 * @class
 */
class ApplicationSimpleInfoResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Application ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationID = null;

        /**
         * Product ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.AppIdentityID = null;

        /**
         * The application name.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationName = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ApplicationID = 'ApplicationID' in params ? params.ApplicationID : null;
        this.AppIdentityID = 'AppIdentityID' in params ? params.AppIdentityID : null;
        this.ApplicationName = 'ApplicationName' in params ? params.ApplicationName : null;

    }
}

/**
 * ModifyTeam response structure.
 * @class
 */
class ModifyTeamResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {BooleanInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new BooleanInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeSimpleTeamList response structure.
 * @class
 */
class DescribeSimpleTeamListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {DescribeSimpleTeamListResp || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new DescribeSimpleTeamListResp();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Result of the task to create a mini program version
 * @class
 */
class DescribeMNPVersionResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Task ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.TaskId = null;

        /**
         * 1: Pending; 20: Running; 30: Failed; 60: Succeeded 
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.TaskStatus = null;

        /**
         * Task status message
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.TaskMsg = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.TaskId = 'TaskId' in params ? params.TaskId : null;
        this.TaskStatus = 'TaskStatus' in params ? params.TaskStatus : null;
        this.TaskMsg = 'TaskMsg' in params ? params.TaskMsg : null;

    }
}

/**
 * DescribeApplicationConfigFile response structure.
 * @class
 */
class DescribeApplicationConfigFileResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {DownloadApplicationConfigResp || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new DownloadApplicationConfigResp();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Used for Data object when no data is returned after the a successful action.
 * @class
 */
class BooleanInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Bool type response object
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {boolean || null}
         */
        this.Result = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Result = 'Result' in params ? params.Result : null;

    }
}

/**
 * DescribeUserDetail request structure.
 * @class
 */
class DescribeUserDetailRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * User ID
         * @type {string || null}
         */
        this.UserId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.UserId = 'UserId' in params ? params.UserId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * DescribeMNPBoard request structure.
 * @class
 */
class DescribeMNPBoardRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program ID
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * Application configuration information
 * @class
 */
class DownloadApplicationConfigResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Configuration information in Base64 format
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.File = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.File = 'File' in params ? params.File : null;

    }
}

/**
 * CreateMNPDomainACL response structure.
 * @class
 */
class CreateMNPDomainACLResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {BooleanInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new BooleanInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeOfflineMNPPackage response structure.
 * @class
 */
class DescribeOfflineMNPPackageResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {StringData || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new StringData();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Sensitive API approval information
 * @class
 */
class SensitiveApiAuditInfoResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Approval ticket ID
         * @type {string || null}
         */
        this.AuditNo = null;

        /**
         * Approval ticket ID
         * @type {string || null}
         */
        this.ApiId = null;

        /**
         * API name
         * @type {string || null}
         */
        this.ApiName = null;

        /**
         * API request method
         * @type {string || null}
         */
        this.ApiMethod = null;

        /**
         * Mini program ID
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Mini program name
         * @type {string || null}
         */
        this.MNPName = null;

        /**
         * Applicant
         * @type {string || null}
         */
        this.ApplyUser = null;

        /**
         * Application time
         * @type {string || null}
         */
        this.ApplyTime = null;

        /**
         * Application notes
         * @type {string || null}
         */
        this.ApplyNote = null;

        /**
         * Approval status
         * @type {number || null}
         */
        this.AuditStatus = null;

        /**
         * Approver
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.AuditUser = null;

        /**
         * Approval time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.AuditTime = null;

        /**
         * Approval notes
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.AuditNote = null;

        /**
         * Application ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationId = null;

        /**
         * The application name.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationName = null;

        /**
         * Application icon
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationLogo = null;

        /**
         * API type. 1: System; 2: Custom
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.ApiType = null;

        /**
         * API function description
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApiDesc = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.AuditNo = 'AuditNo' in params ? params.AuditNo : null;
        this.ApiId = 'ApiId' in params ? params.ApiId : null;
        this.ApiName = 'ApiName' in params ? params.ApiName : null;
        this.ApiMethod = 'ApiMethod' in params ? params.ApiMethod : null;
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.MNPName = 'MNPName' in params ? params.MNPName : null;
        this.ApplyUser = 'ApplyUser' in params ? params.ApplyUser : null;
        this.ApplyTime = 'ApplyTime' in params ? params.ApplyTime : null;
        this.ApplyNote = 'ApplyNote' in params ? params.ApplyNote : null;
        this.AuditStatus = 'AuditStatus' in params ? params.AuditStatus : null;
        this.AuditUser = 'AuditUser' in params ? params.AuditUser : null;
        this.AuditTime = 'AuditTime' in params ? params.AuditTime : null;
        this.AuditNote = 'AuditNote' in params ? params.AuditNote : null;
        this.ApplicationId = 'ApplicationId' in params ? params.ApplicationId : null;
        this.ApplicationName = 'ApplicationName' in params ? params.ApplicationName : null;
        this.ApplicationLogo = 'ApplicationLogo' in params ? params.ApplicationLogo : null;
        this.ApiType = 'ApiType' in params ? params.ApiType : null;
        this.ApiDesc = 'ApiDesc' in params ? params.ApiDesc : null;

    }
}

/**
 * DescribeTeamList request structure.
 * @class
 */
class DescribeTeamListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Pagination offset
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Number of results per page
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * Name of the team to be queried
         * @type {string || null}
         */
        this.Keyword = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;
        this.Keyword = 'Keyword' in params ? params.Keyword : null;

    }
}

/**
 * DescribeMNPApprovalList response structure.
 * @class
 */
class DescribeMNPApprovalListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {DescribeMNPApprovalListResp || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new DescribeMNPApprovalListResp();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ModifyApplicationAppKey request structure.
 * @class
 */
class ModifyApplicationAppKeyRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Application ID
         * @type {string || null}
         */
        this.ApplicationId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * Android package name
         * @type {string || null}
         */
        this.AndroidAppKey = null;

        /**
         * iOS package name
         * @type {string || null}
         */
        this.IOSAppKey = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ApplicationId = 'ApplicationId' in params ? params.ApplicationId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;
        this.AndroidAppKey = 'AndroidAppKey' in params ? params.AndroidAppKey : null;
        this.IOSAppKey = 'IOSAppKey' in params ? params.IOSAppKey : null;

    }
}

/**
 * DescribeMNPVersion request structure.
 * @class
 */
class DescribeMNPVersionRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * ID of the task to create a mini program version
         * @type {string || null}
         */
        this.BusinessId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.BusinessId = 'BusinessId' in params ? params.BusinessId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * CreateSensitiveApiApply response structure.
 * @class
 */
class CreateSensitiveApiApplyResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Note: This field may return null, indicating that no valid values can be obtained.
         * @type {ResourceIdStringInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new ResourceIdStringInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Simple list of applications
 * @class
 */
class ApplicationSimpleListInfoResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of results.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List information
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<ApplicationSimpleInfoResp> || null}
         */
        this.DataList = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.DataList) {
            this.DataList = new Array();
            for (let z in params.DataList) {
                let obj = new ApplicationSimpleInfoResp();
                obj.deserialize(params.DataList[z]);
                this.DataList.push(obj);
            }
        }

    }
}

/**
 * CreateApplication request structure.
 * @class
 */
class CreateApplicationRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Application name
         * @type {string || null}
         */
        this.ApplicationName = null;

        /**
         * Logo address
         * @type {string || null}
         */
        this.Logo = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * Team ID
         * @type {string || null}
         */
        this.TeamId = null;

        /**
         * Application type. 1: Test; 2: Formal
         * @type {number || null}
         */
        this.ApplicationType = null;

        /**
         * Introduction
         * @type {string || null}
         */
        this.Intro = null;

        /**
         * Android app package name
         * @type {string || null}
         */
        this.AndroidAppKey = null;

        /**
         * iOS App bundleId
         * @type {string || null}
         */
        this.IosAppKey = null;

        /**
         * Remarks
         * @type {string || null}
         */
        this.Remark = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.ApplicationName = 'ApplicationName' in params ? params.ApplicationName : null;
        this.Logo = 'Logo' in params ? params.Logo : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;
        this.TeamId = 'TeamId' in params ? params.TeamId : null;
        this.ApplicationType = 'ApplicationType' in params ? params.ApplicationType : null;
        this.Intro = 'Intro' in params ? params.Intro : null;
        this.AndroidAppKey = 'AndroidAppKey' in params ? params.AndroidAppKey : null;
        this.IosAppKey = 'IosAppKey' in params ? params.IosAppKey : null;
        this.Remark = 'Remark' in params ? params.Remark : null;

    }
}

/**
 * Information of mini program categories
 * @class
 */
class MNPTypeDefine extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program category name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.TypeName = null;

        /**
         * Mini program category value
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<string> || null}
         */
        this.TypeValue = null;

        /**
         * Category ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.TypeId = null;

        /**
         * Creation time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.CreateTime = null;

        /**
         * Creator
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CreateUser = null;

        /**
         * Whether it is a system category
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {boolean || null}
         */
        this.IsSystem = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TypeName = 'TypeName' in params ? params.TypeName : null;
        this.TypeValue = 'TypeValue' in params ? params.TypeValue : null;
        this.TypeId = 'TypeId' in params ? params.TypeId : null;
        this.CreateTime = 'CreateTime' in params ? params.CreateTime : null;
        this.CreateUser = 'CreateUser' in params ? params.CreateUser : null;
        this.IsSystem = 'IsSystem' in params ? params.IsSystem : null;

    }
}

/**
 * Information of bound applications
 * @class
 */
class ApplicationMNPRelInfoResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Mini program name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPName = null;

        /**
         * Mini program icon
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPIcon = null;

        /**
         * Mini program type
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPType = null;

        /**
         * Introduction
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPIntro = null;

        /**
         * Description
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPDesc = null;

        /**
         * Effectiveness. 1: Not effective 2: Effective
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.EffectStatus = null;

        /**
         * Effective version
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.EffectMNPVersion = null;

        /**
         * Online version
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPOnlineVersion = null;

        /**
         * 0: Not released; 1: Released
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.OnlineStatus = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.MNPName = 'MNPName' in params ? params.MNPName : null;
        this.MNPIcon = 'MNPIcon' in params ? params.MNPIcon : null;
        this.MNPType = 'MNPType' in params ? params.MNPType : null;
        this.MNPIntro = 'MNPIntro' in params ? params.MNPIntro : null;
        this.MNPDesc = 'MNPDesc' in params ? params.MNPDesc : null;
        this.EffectStatus = 'EffectStatus' in params ? params.EffectStatus : null;
        this.EffectMNPVersion = 'EffectMNPVersion' in params ? params.EffectMNPVersion : null;
        this.MNPOnlineVersion = 'MNPOnlineVersion' in params ? params.MNPOnlineVersion : null;
        this.OnlineStatus = 'OnlineStatus' in params ? params.OnlineStatus : null;

    }
}

/**
 * CreateSensitiveAPI response structure.
 * @class
 */
class CreateSensitiveAPIResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {BooleanInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new BooleanInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeTempSecret4UploadFile2Cos response structure.
 * @class
 */
class DescribeTempSecret4UploadFile2CosResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {UploadFileTempSecret || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new UploadFileTempSecret();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeSensitiveAPIAuditList request structure.
 * @class
 */
class DescribeSensitiveAPIAuditListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Page offset
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Number of results per page
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * Status list
         * @type {Array.<number> || null}
         */
        this.AuditStatusList = null;

        /**
         * Keywords for search (API name or API method or app name)
         * @type {string || null}
         */
        this.Keyword = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;
        this.AuditStatusList = 'AuditStatusList' in params ? params.AuditStatusList : null;
        this.Keyword = 'Keyword' in params ? params.Keyword : null;

    }
}

/**
 * DescribeMNPReleasedVersionHistory response structure.
 * @class
 */
class DescribeMNPReleasedVersionHistoryResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {DescribeRevertOnlineVersionPageResp || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new DescribeRevertOnlineVersionPageResp();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DeleteApplicationSensitiveAPI request structure.
 * @class
 */
class DeleteApplicationSensitiveAPIRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * API ID
         * @type {string || null}
         */
        this.APIId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.APIId = 'APIId' in params ? params.APIId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * DescribeDomainTeamList request structure.
 * @class
 */
class DescribeDomainTeamListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Pagination offset
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Number of results per page
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * Query keywords (team name)
         * @type {string || null}
         */
        this.Keyword = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;
        this.Keyword = 'Keyword' in params ? params.Keyword : null;

    }
}

/**
 * AddTeamMember request structure.
 * @class
 */
class AddTeamMemberRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Team ID
         * @type {string || null}
         */
        this.TeamId = null;

        /**
         * Members to be added
         * @type {Array.<CreateTeamMemberInfoReq> || null}
         */
        this.MemberList = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TeamId = 'TeamId' in params ? params.TeamId : null;

        if (params.MemberList) {
            this.MemberList = new Array();
            for (let z in params.MemberList) {
                let obj = new CreateTeamMemberInfoReq();
                obj.deserialize(params.MemberList[z]);
                this.MemberList.push(obj);
            }
        }
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * Result of global domain name check
 * @class
 */
class GlobalDomainCheckResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * List of duplicate domain names
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<string> || null}
         */
        this.RepeatUrls = null;

        /**
         * List of allowed domain names
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<string> || null}
         */
        this.ExistsWhiteUrls = null;

        /**
         * List of blocked domain names
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<string> || null}
         */
        this.ExistsBlackUrls = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.RepeatUrls = 'RepeatUrls' in params ? params.RepeatUrls : null;
        this.ExistsWhiteUrls = 'ExistsWhiteUrls' in params ? params.ExistsWhiteUrls : null;
        this.ExistsBlackUrls = 'ExistsBlackUrls' in params ? params.ExistsBlackUrls : null;

    }
}

/**
 * DescribeMNPVersionPreview response structure.
 * @class
 */
class DescribeMNPVersionPreviewResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Note: This field may return null, indicating that no valid values can be obtained.
         * @type {DescribeShowCaseResp || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new DescribeShowCaseResp();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DisableApplicationSensitiveAPI response structure.
 * @class
 */
class DisableApplicationSensitiveAPIResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {BooleanInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new BooleanInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeUser response structure.
 * @class
 */
class DescribeUserResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {DescribeUserDetailResp || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new DescribeUserDetailResp();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DeleteTeamMember request structure.
 * @class
 */
class DeleteTeamMemberRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Team ID
         * @type {string || null}
         */
        this.TeamId = null;

        /**
         * User ID
         * @type {string || null}
         */
        this.UserId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TeamId = 'TeamId' in params ? params.TeamId : null;
        this.UserId = 'UserId' in params ? params.UserId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * ModifyOnlineVersion request structure.
 * @class
 */
class ModifyOnlineVersionRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program ID
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Mini program version ID
         * @type {number || null}
         */
        this.MNPVersionId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * Mini program version number
         * @type {string || null}
         */
        this.MNPVersion = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.MNPVersionId = 'MNPVersionId' in params ? params.MNPVersionId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;
        this.MNPVersion = 'MNPVersion' in params ? params.MNPVersion : null;

    }
}

/**
 * Temporary key for file upload
 * @class
 */
class UploadFileTempSecret extends  AbstractModel {
    constructor(){
        super();

        /**
         * Bucket
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Bucket = null;

        /**
         * Region
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Region = null;

        /**
         * Destination of upload
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Path = null;

        /**
         * Temporary secret ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.TempSecretId = null;

        /**
         * Temporary secret key
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.TempSecretKey = null;

        /**
         * Token 
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Token = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Bucket = 'Bucket' in params ? params.Bucket : null;
        this.Region = 'Region' in params ? params.Region : null;
        this.Path = 'Path' in params ? params.Path : null;
        this.TempSecretId = 'TempSecretId' in params ? params.TempSecretId : null;
        this.TempSecretKey = 'TempSecretKey' in params ? params.TempSecretKey : null;
        this.Token = 'Token' in params ? params.Token : null;

    }
}

/**
 * List of sensitive APIs of the application
 * @class
 */
class DescribeApplicationSensitiveAPIListResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of entries
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List information
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<DescribeApplicationSensitiveAPIListData> || null}
         */
        this.DataList = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.DataList) {
            this.DataList = new Array();
            for (let z in params.DataList) {
                let obj = new DescribeApplicationSensitiveAPIListData();
                obj.deserialize(params.DataList[z]);
                this.DataList.push(obj);
            }
        }

    }
}

/**
 * Privacy API permission list
 * @class
 */
class DescribeSensitiveApiAuthListParam extends  AbstractModel {
    constructor(){
        super();

        /**
         * API ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.APIId = null;

        /**
         * API name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.APIName = null;

        /**
         * API method
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.APIMethod = null;

        /**
         * API status
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.APIStatus = null;

        /**
         * API application status
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.APIApplyStatus = null;

        /**
         * Reason for rejection
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.RejectReason = null;

        /**
         * Approval ticket ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.AuditNo = null;

        /**
         * Application ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationId = null;

        /**
         * Application icon
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationIcon = null;

        /**
         * Application name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ApplicationName = null;

        /**
         * API type 1 - System API 2 - Custom API
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.APIType = null;

        /**
         * API feature description
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.APIDesc = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.APIId = 'APIId' in params ? params.APIId : null;
        this.APIName = 'APIName' in params ? params.APIName : null;
        this.APIMethod = 'APIMethod' in params ? params.APIMethod : null;
        this.APIStatus = 'APIStatus' in params ? params.APIStatus : null;
        this.APIApplyStatus = 'APIApplyStatus' in params ? params.APIApplyStatus : null;
        this.RejectReason = 'RejectReason' in params ? params.RejectReason : null;
        this.AuditNo = 'AuditNo' in params ? params.AuditNo : null;
        this.ApplicationId = 'ApplicationId' in params ? params.ApplicationId : null;
        this.ApplicationIcon = 'ApplicationIcon' in params ? params.ApplicationIcon : null;
        this.ApplicationName = 'ApplicationName' in params ? params.ApplicationName : null;
        this.APIType = 'APIType' in params ? params.APIType : null;
        this.APIDesc = 'APIDesc' in params ? params.APIDesc : null;

    }
}

/**
 * Information of enterprise domain names
 * @class
 */
class DescribeDomainTeamListInfoResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Team ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.TeamId = null;

        /**
         * Team name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.TeamName = null;

        /**
         * Creator
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CreateUser = null;

        /**
         * Creation time
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CreateTime = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TeamId = 'TeamId' in params ? params.TeamId : null;
        this.TeamName = 'TeamName' in params ? params.TeamName : null;
        this.CreateUser = 'CreateUser' in params ? params.CreateUser : null;
        this.CreateTime = 'CreateTime' in params ? params.CreateTime : null;

    }
}

/**
 * DescribeRoleDetail response structure.
 * @class
 */
class DescribeRoleDetailResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {DescribeRoleDetailResp || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new DescribeRoleDetailResp();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * CreateApplicationSensitiveAPI response structure.
 * @class
 */
class CreateApplicationSensitiveAPIResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {BooleanInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new BooleanInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeGlobalDomainACL response structure.
 * @class
 */
class DescribeGlobalDomainACLResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {DescribeGlobalDomainsResp || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new DescribeGlobalDomainsResp();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * Information of the specified version of mini program
 * @class
 */
class VersionBoardResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Mini program version ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.MNPVersionId = null;

        /**
         * Mini program name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPName = null;

        /**
         * Mini program icon
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPIcon = null;

        /**
         * Mini program category
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPType = null;

        /**
         * Mini program introduction
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPIntro = null;

        /**
         * Mini program description
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPDesc = null;

        /**
         * Developer
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CreateUser = null;

        /**
         * The time when the developer created it
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.CreateTime = null;

        /**
         * Mini program version
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPVersion = null;

        /**
         * Version features
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.MNPVersionIntro = null;

        /**
         * Phase. Values: [Develop,Platform,Online]
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.Phase = null;

        /**
         * 0: Pending; 1: Processing; 2: Rejected; 3: Approved; 4: Cancelled
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.AuditStatus = null;

        /**
         * Approval ticket ID
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.AuditNo = null;

        /**
         * Whether it is a trial version. 
0: Not a trial version; 1: Trial version
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.ShowCase = null;

        /**
         * Scanning status
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.ScanStatus = null;

        /**
         * Scan score
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.ScanScore = null;

        /**
         * Version number to roll back to
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.RollbackVersion = null;

        /**
         * Release status
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.Status = null;

        /**
         * Address of the scan result
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.ScanHtmlPath = null;

        /**
         * Version approval status. 0: Pending; 1: Processing; 2: Rejected; 3: Approved; 4: Cancelled
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.VersionCurrentStatus = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.MNPVersionId = 'MNPVersionId' in params ? params.MNPVersionId : null;
        this.MNPName = 'MNPName' in params ? params.MNPName : null;
        this.MNPIcon = 'MNPIcon' in params ? params.MNPIcon : null;
        this.MNPType = 'MNPType' in params ? params.MNPType : null;
        this.MNPIntro = 'MNPIntro' in params ? params.MNPIntro : null;
        this.MNPDesc = 'MNPDesc' in params ? params.MNPDesc : null;
        this.CreateUser = 'CreateUser' in params ? params.CreateUser : null;
        this.CreateTime = 'CreateTime' in params ? params.CreateTime : null;
        this.MNPVersion = 'MNPVersion' in params ? params.MNPVersion : null;
        this.MNPVersionIntro = 'MNPVersionIntro' in params ? params.MNPVersionIntro : null;
        this.Phase = 'Phase' in params ? params.Phase : null;
        this.AuditStatus = 'AuditStatus' in params ? params.AuditStatus : null;
        this.AuditNo = 'AuditNo' in params ? params.AuditNo : null;
        this.ShowCase = 'ShowCase' in params ? params.ShowCase : null;
        this.ScanStatus = 'ScanStatus' in params ? params.ScanStatus : null;
        this.ScanScore = 'ScanScore' in params ? params.ScanScore : null;
        this.RollbackVersion = 'RollbackVersion' in params ? params.RollbackVersion : null;
        this.Status = 'Status' in params ? params.Status : null;
        this.ScanHtmlPath = 'ScanHtmlPath' in params ? params.ScanHtmlPath : null;
        this.VersionCurrentStatus = 'VersionCurrentStatus' in params ? params.VersionCurrentStatus : null;

    }
}

/**
 * CreatePresetKey request structure.
 * @class
 */
class CreatePresetKeyRequest extends  AbstractModel {
    constructor(){
        super();

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

    }
}

/**
 * DescribeTeamMembers request structure.
 * @class
 */
class DescribeTeamMembersRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Pagination offset
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Number of results per page
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Team ID
         * @type {string || null}
         */
        this.TeamId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.TeamId = 'TeamId' in params ? params.TeamId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * CreateApplication response structure.
 * @class
 */
class CreateApplicationResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {ResourceIdStringInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new ResourceIdStringInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeMNPCategory request structure.
 * @class
 */
class DescribeMNPCategoryRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * Information of the subpackage built in a compiling task
 * @class
 */
class DescribeMNPVersionCompileTaskSubSimpleInfo extends  AbstractModel {
    constructor(){
        super();

        /**
         * Name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.PkgName = null;

        /**
         * Prefix of the package name
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {string || null}
         */
        this.PathPrefix = null;

        /**
         * Package size in bytes
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.PkgSize = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.PkgName = 'PkgName' in params ? params.PkgName : null;
        this.PathPrefix = 'PathPrefix' in params ? params.PathPrefix : null;
        this.PkgSize = 'PkgSize' in params ? params.PkgSize : null;

    }
}

/**
 * DeleteApplicationSensitiveAPI response structure.
 * @class
 */
class DeleteApplicationSensitiveAPIResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {BooleanInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new BooleanInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ModifyMNPVersionPreview response structure.
 * @class
 */
class ModifyMNPVersionPreviewResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {BooleanInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new BooleanInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * EnableApplicationSensitiveAPI request structure.
 * @class
 */
class EnableApplicationSensitiveAPIRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * API ID
         * @type {string || null}
         */
        this.APIId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;
        this.APIId = 'APIId' in params ? params.APIId : null;

    }
}

/**
 * DescribeMNPManagerDetail response structure.
 * @class
 */
class DescribeMNPManagerDetailResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {DescribeMNPManagerDetailData || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new DescribeMNPManagerDetailData();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DeleteGlobalDomain request structure.
 * @class
 */
class DeleteGlobalDomainRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Domain ID
         * @type {number || null}
         */
        this.DomainId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.DomainId = 'DomainId' in params ? params.DomainId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * Response of deleting a global domain name
 * @class
 */
class GlobalDomainDeleteResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response result
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {boolean || null}
         */
        this.Result = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Result = 'Result' in params ? params.Result : null;

    }
}

/**
 * DeleteGlobalDomain response structure.
 * @class
 */
class DeleteGlobalDomainResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {GlobalDomainDeleteResp || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new GlobalDomainDeleteResp();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * ModifySensitiveAPIAuditStatus response structure.
 * @class
 */
class ModifySensitiveAPIAuditStatusResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {BooleanInfo || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new BooleanInfo();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * DescribeMNPList request structure.
 * @class
 */
class DescribeMNPListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Page offset
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Number of results per page
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * Keywords for search (mini program name)
         * @type {string || null}
         */
        this.Keyword = null;

        /**
         * Team ID
         * @type {string || null}
         */
        this.TeamId = null;

        /**
         * Application ID
         * @type {string || null}
         */
        this.ApplicationId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;
        this.Keyword = 'Keyword' in params ? params.Keyword : null;
        this.TeamId = 'TeamId' in params ? params.TeamId : null;
        this.ApplicationId = 'ApplicationId' in params ? params.ApplicationId : null;

    }
}

/**
 * DescribeMNPPreview request structure.
 * @class
 */
class DescribeMNPPreviewRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Mini program ID
         * @type {string || null}
         */
        this.MNPId = null;

        /**
         * Mini program version ID
         * @type {number || null}
         */
        this.MNPVersionId = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.MNPId = 'MNPId' in params ? params.MNPId : null;
        this.MNPVersionId = 'MNPVersionId' in params ? params.MNPVersionId : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * Response of creating a global domain name
 * @class
 */
class CreateGlobalDomainResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Result
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {boolean || null}
         */
        this.Result = null;

        /**
         * List of duplicate domain names
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<string> || null}
         */
        this.RepeatUrls = null;

        /**
         * List of allowed domain names
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<string> || null}
         */
        this.ExistsWhiteUrls = null;

        /**
         * List of blocked domain names
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<string> || null}
         */
        this.ExistsBlackUrls = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Result = 'Result' in params ? params.Result : null;
        this.RepeatUrls = 'RepeatUrls' in params ? params.RepeatUrls : null;
        this.ExistsWhiteUrls = 'ExistsWhiteUrls' in params ? params.ExistsWhiteUrls : null;
        this.ExistsBlackUrls = 'ExistsBlackUrls' in params ? params.ExistsBlackUrls : null;

    }
}

/**
 * CreateGlobalDomainACL request structure.
 * @class
 */
class CreateGlobalDomainACLRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Domain name list
         * @type {Array.<string> || null}
         */
        this.DomainUrlList = null;

        /**
         * Domain type. 1: Allowed; 2: Blocked
         * @type {number || null}
         */
        this.DomainType = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.DomainUrlList = 'DomainUrlList' in params ? params.DomainUrlList : null;
        this.DomainType = 'DomainType' in params ? params.DomainType : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;

    }
}

/**
 * DescribeApplicationSensitiveAPIList request structure.
 * @class
 */
class DescribeApplicationSensitiveAPIListRequest extends  AbstractModel {
    constructor(){
        super();

        /**
         * Page offset
         * @type {number || null}
         */
        this.Offset = null;

        /**
         * Number of results per page
         * @type {number || null}
         */
        this.Limit = null;

        /**
         * Platform ID
         * @type {string || null}
         */
        this.PlatformId = null;

        /**
         * Application ID
         * @type {string || null}
         */
        this.ApplicationId = null;

        /**
         * Keywords for search (API name or method)
         * @type {string || null}
         */
        this.Keyword = null;

        /**
         * Team ID
         * @type {string || null}
         */
        this.TeamId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.Offset = 'Offset' in params ? params.Offset : null;
        this.Limit = 'Limit' in params ? params.Limit : null;
        this.PlatformId = 'PlatformId' in params ? params.PlatformId : null;
        this.ApplicationId = 'ApplicationId' in params ? params.ApplicationId : null;
        this.Keyword = 'Keyword' in params ? params.Keyword : null;
        this.TeamId = 'TeamId' in params ? params.TeamId : null;

    }
}

/**
 * DescribeTeamMemberList response structure.
 * @class
 */
class DescribeTeamMemberListResponse extends  AbstractModel {
    constructor(){
        super();

        /**
         * Response data
         * @type {DescribeTeamMemberListPageResp || null}
         */
        this.Data = null;

        /**
         * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
         * @type {string || null}
         */
        this.RequestId = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }

        if (params.Data) {
            let obj = new DescribeTeamMemberListPageResp();
            obj.deserialize(params.Data)
            this.Data = obj;
        }
        this.RequestId = 'RequestId' in params ? params.RequestId : null;

    }
}

/**
 * List of members
 * @class
 */
class DescribeTeamMemberListPageResp extends  AbstractModel {
    constructor(){
        super();

        /**
         * Total number of results.
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {number || null}
         */
        this.TotalCount = null;

        /**
         * List information
Note: This field may return null, indicating that no valid values can be obtained.
         * @type {Array.<DescribeTeamMemberInfoResp> || null}
         */
        this.DataList = null;

    }

    /**
     * @private
     */
    deserialize(params) {
        if (!params) {
            return;
        }
        this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;

        if (params.DataList) {
            this.DataList = new Array();
            for (let z in params.DataList) {
                let obj = new DescribeTeamMemberInfoResp();
                obj.deserialize(params.DataList[z]);
                this.DataList.push(obj);
            }
        }

    }
}

module.exports = {
    CreatePresetKeyResponse: CreatePresetKeyResponse,
    DescribeOnlineVersionRequest: DescribeOnlineVersionRequest,
    DescribeMNPVersionCompileTaskExtInfo: DescribeMNPVersionCompileTaskExtInfo,
    DescribeOfflineMNPPackageRequest: DescribeOfflineMNPPackageRequest,
    DescribeRoleDetailRequest: DescribeRoleDetailRequest,
    DescribeMNPAllStageVersionsRequest: DescribeMNPAllStageVersionsRequest,
    ModifyApplicationRequest: ModifyApplicationRequest,
    ModifyUserPasswordRequest: ModifyUserPasswordRequest,
    DescribeTeamMembersInfoPageResp: DescribeTeamMembersInfoPageResp,
    DescribeDomainTeamListPageResp: DescribeDomainTeamListPageResp,
    DeleteUserRequest: DeleteUserRequest,
    ModifyPlatformAuditStatusResponse: ModifyPlatformAuditStatusResponse,
    DescribeMNPCategoryResponse: DescribeMNPCategoryResponse,
    CreateApplicationSensitiveAPIReq: CreateApplicationSensitiveAPIReq,
    DescribeSensitiveAPIListRequest: DescribeSensitiveAPIListRequest,
    CreateMNPApprovalRequest: CreateMNPApprovalRequest,
    RemoveMNPRequest: RemoveMNPRequest,
    DeleteTeamMemberResponse: DeleteTeamMemberResponse,
    RemoveMNPResponse: RemoveMNPResponse,
    DescribeMNPListResp: DescribeMNPListResp,
    DescribeMNPPreviewResp: DescribeMNPPreviewResp,
    DescribeMNPVersionResponse: DescribeMNPVersionResponse,
    ModifyApplicationResponse: ModifyApplicationResponse,
    EnableApplicationSensitiveAPIResponse: EnableApplicationSensitiveAPIResponse,
    DescribeTeamDomainListRequest: DescribeTeamDomainListRequest,
    DescribeSensitiveApiAuthListRequest: DescribeSensitiveApiAuthListRequest,
    DescribeMNPListResponse: DescribeMNPListResponse,
    ModifyMNPStatusOfflineRequest: ModifyMNPStatusOfflineRequest,
    ProcessMNPApprovalResponse: ProcessMNPApprovalResponse,
    ResourceIdStringInfo: ResourceIdStringInfo,
    DescribeGlobalDomainACLRequest: DescribeGlobalDomainACLRequest,
    DeleteTeamResponse: DeleteTeamResponse,
    DescribeRevertOnlineVersionPageResp: DescribeRevertOnlineVersionPageResp,
    DescribeMNPSensitiveAPIPermissionApprovalRequest: DescribeMNPSensitiveAPIPermissionApprovalRequest,
    CreateOnlineApplyRequest: CreateOnlineApplyRequest,
    CheckGlobalDomainRequest: CheckGlobalDomainRequest,
    DescribeTeamMemberInfoResp: DescribeTeamMemberInfoResp,
    ConfigureMNPPreviewResponse: ConfigureMNPPreviewResponse,
    ModifyMNPVersionPreviewRequest: ModifyMNPVersionPreviewRequest,
    DescribeMNPManagerListResp: DescribeMNPManagerListResp,
    DescribeSensitiveApiApplyDetailResponse: DescribeSensitiveApiApplyDetailResponse,
    DescribeSimpleApplicationInfoListResponse: DescribeSimpleApplicationInfoListResponse,
    DescribeMNPSensitiveAPIPermissionApprovalListData: DescribeMNPSensitiveAPIPermissionApprovalListData,
    DeleteMNPResponse: DeleteMNPResponse,
    ModifySensitiveAPIAuditStatusRequest: ModifySensitiveAPIAuditStatusRequest,
    DescribeMPAllStageVersionsResp: DescribeMPAllStageVersionsResp,
    GlobalDomainDescribeListPageResp: GlobalDomainDescribeListPageResp,
    DescribeMNPSensitiveAPIPermissionListRequest: DescribeMNPSensitiveAPIPermissionListRequest,
    DescribeApplicationListRequest: DescribeApplicationListRequest,
    DescribeTeamResponse: DescribeTeamResponse,
    DeleteTeamRequest: DeleteTeamRequest,
    DescribeRoleListRequest: DescribeRoleListRequest,
    ReleaseMNPVersionResponse: ReleaseMNPVersionResponse,
    CreateTeamMemberResponse: CreateTeamMemberResponse,
    DescribeMNPDetailResponse: DescribeMNPDetailResponse,
    DeleteSensitiveAPIResponse: DeleteSensitiveAPIResponse,
    ModifyMNPStatusOfflineResponse: ModifyMNPStatusOfflineResponse,
    ModifyTeamRequest: ModifyTeamRequest,
    DescribeMNPTypeRequest: DescribeMNPTypeRequest,
    DescribeDomainInfoRequest: DescribeDomainInfoRequest,
    DescribeMNPTypeResponse: DescribeMNPTypeResponse,
    DeleteApplicationResponse: DeleteApplicationResponse,
    DescribeMNPManagerListResponse: DescribeMNPManagerListResponse,
    DescribeMNPPrivacyResponse: DescribeMNPPrivacyResponse,
    CreateSensitiveAPIRequest: CreateSensitiveAPIRequest,
    DescribeUserDetailResp: DescribeUserDetailResp,
    DescribeSensitiveApiAuthPageParam: DescribeSensitiveApiAuthPageParam,
    ProcessMNPSensitiveAPIPermissionApprovalResponse: ProcessMNPSensitiveAPIPermissionApprovalResponse,
    DescribeApplicationListResponse: DescribeApplicationListResponse,
    DescribeSensitiveApiApplyDetail: DescribeSensitiveApiApplyDetail,
    ModifyGlobalDomainResponse: ModifyGlobalDomainResponse,
    DescribeRoleListResp: DescribeRoleListResp,
    DescribeTeamListInfoResp: DescribeTeamListInfoResp,
    CreateMNPSensitiveAPIPermissionApprovalRequest: CreateMNPSensitiveAPIPermissionApprovalRequest,
    DeleteMNPRequest: DeleteMNPRequest,
    DescribeRoleDetailResp: DescribeRoleDetailResp,
    DescribeSimpleTeamListResp: DescribeSimpleTeamListResp,
    DescribeMNPManagerListRequest: DescribeMNPManagerListRequest,
    ApplicationSimpleInfo: ApplicationSimpleInfo,
    DescribeMNPAllStageVersionsResponse: DescribeMNPAllStageVersionsResponse,
    DescribeTeamListResponse: DescribeTeamListResponse,
    DescribeUserListResp: DescribeUserListResp,
    ApprovalItem: ApprovalItem,
    ShowCaseRelAppInfo: ShowCaseRelAppInfo,
    CreateTeamMemberRequest: CreateTeamMemberRequest,
    DescribeTeamMembersInfoResp: DescribeTeamMembersInfoResp,
    DescribeRoleListResponse: DescribeRoleListResponse,
    CreateMNPVersionRequest: CreateMNPVersionRequest,
    DescribeMNPListData: DescribeMNPListData,
    ModifyOnlineVersionResponse: ModifyOnlineVersionResponse,
    DescribeMNPDetailRequest: DescribeMNPDetailRequest,
    DeleteSensitiveAPIRequest: DeleteSensitiveAPIRequest,
    CreateSensitiveApiApplyRequest: CreateSensitiveApiApplyRequest,
    DescribeMNPApprovalListRequest: DescribeMNPApprovalListRequest,
    ModifyMNPDomainRequest: ModifyMNPDomainRequest,
    DescribeApplicationMNPVersionAuditListRequest: DescribeApplicationMNPVersionAuditListRequest,
    ModifyApplicationAppKeyResponse: ModifyApplicationAppKeyResponse,
    SimpleStringKeyValue: SimpleStringKeyValue,
    MNPDetail: MNPDetail,
    CreateTeamMemberInfoReq: CreateTeamMemberInfoReq,
    DisableEnterpriseDomainResp: DisableEnterpriseDomainResp,
    ModifyApplicationAppUrlResponse: ModifyApplicationAppUrlResponse,
    DisableTeamDomainResponse: DisableTeamDomainResponse,
    DescribeTempSecret4UploadFile2CosRequest: DescribeTempSecret4UploadFile2CosRequest,
    CreateUserResponse: CreateUserResponse,
    DescribeDomainTeamListResponse: DescribeDomainTeamListResponse,
    SensitiveApiAuditInfoPageResp: SensitiveApiAuditInfoPageResp,
    ModifyMNPDomainResponse: ModifyMNPDomainResponse,
    DescribeApplicationConfigFileRequest: DescribeApplicationConfigFileRequest,
    DescribeSimpleTeamListRequest: DescribeSimpleTeamListRequest,
    DescribeUserListRequest: DescribeUserListRequest,
    DeleteUserResponse: DeleteUserResponse,
    CreatePlatformAuditResponse: CreatePlatformAuditResponse,
    DescribeOnlineVersionResponse: DescribeOnlineVersionResponse,
    DescribeApplicationResponse: DescribeApplicationResponse,
    CheckGlobalDomainResponse: CheckGlobalDomainResponse,
    DescribeDomainInfoResponse: DescribeDomainInfoResponse,
    CreateMNPVersionResp: CreateMNPVersionResp,
    CreateGlobalDomainResponse: CreateGlobalDomainResponse,
    DescribeDomainInfoParam: DescribeDomainInfoParam,
    CreateMNPApprovalResponse: CreateMNPApprovalResponse,
    DescribeMNPApprovalListData: DescribeMNPApprovalListData,
    ResourceIdInfo: ResourceIdInfo,
    DescribeMNPPreviewResponse: DescribeMNPPreviewResponse,
    CreateGlobalDomainRequest: CreateGlobalDomainRequest,
    DescribeMNPBoardResponse: DescribeMNPBoardResponse,
    ModifyUserRequest: ModifyUserRequest,
    CreateMNPResponse: CreateMNPResponse,
    DescribeTeamMembersResponse: DescribeTeamMembersResponse,
    DescribeMNPSensitiveAPIPermissionApprovalListResp: DescribeMNPSensitiveAPIPermissionApprovalListResp,
    DescribeMNPDomainACLRequest: DescribeMNPDomainACLRequest,
    ProcessMNPApprovalRequest: ProcessMNPApprovalRequest,
    DescribeUserListResponse: DescribeUserListResponse,
    DescribeApplicationSensitiveAPIListData: DescribeApplicationSensitiveAPIListData,
    ApplicationInfo: ApplicationInfo,
    CreateGlobalDomainACLResponse: CreateGlobalDomainACLResponse,
    DescribeTeamDomainListPageResp: DescribeTeamDomainListPageResp,
    ProcessMNPSensitiveAPIPermissionApprovalRequest: ProcessMNPSensitiveAPIPermissionApprovalRequest,
    ModifyUserPasswordResponse: ModifyUserPasswordResponse,
    DescribeMNPManagerListData: DescribeMNPManagerListData,
    CreateDomainResponse: CreateDomainResponse,
    DescribeMNPSensitiveAPIPermissionListData: DescribeMNPSensitiveAPIPermissionListData,
    SensitiveApiInfoResp: SensitiveApiInfoResp,
    DescribeSensitiveApiAuthListResponse: DescribeSensitiveApiAuthListResponse,
    DescribeMNPOfflinePackageURLResponse: DescribeMNPOfflinePackageURLResponse,
    ModifyDomainRequest: ModifyDomainRequest,
    AuditInfoReq: AuditInfoReq,
    DescribeConsoleMNPVersionCompileTaskResponse: DescribeConsoleMNPVersionCompileTaskResponse,
    CreateMNPVersionCompileTaskResp: CreateMNPVersionCompileTaskResp,
    GlobalDomainModifyRespResp: GlobalDomainModifyRespResp,
    DisableApplicationSensitiveAPIRequest: DisableApplicationSensitiveAPIRequest,
    DescribeApplicationSensitiveAPIListResponse: DescribeApplicationSensitiveAPIListResponse,
    DescribeSensitiveAPIListResponse: DescribeSensitiveAPIListResponse,
    DeleteApplicationRequest: DeleteApplicationRequest,
    DescribeGlobalDomainListResponse: DescribeGlobalDomainListResponse,
    DescribeSensitiveAPIAuditListResponse: DescribeSensitiveAPIAuditListResponse,
    DescribeUserRequest: DescribeUserRequest,
    DescribeMNPManagerDetailRequest: DescribeMNPManagerDetailRequest,
    ModifyGlobalDomainRequest: ModifyGlobalDomainRequest,
    CreateSensitiveAPIReq: CreateSensitiveAPIReq,
    DescribeMNPReleasedVersionHistoryRequest: DescribeMNPReleasedVersionHistoryRequest,
    DescribeMNPSensitiveAPIPermissionListResponse: DescribeMNPSensitiveAPIPermissionListResponse,
    AddTeamMemberResponse: AddTeamMemberResponse,
    DescribeMNPResponse: DescribeMNPResponse,
    CreateTeamResponse: CreateTeamResponse,
    CreateMNPSensitiveAPIPermissionApprovalResponse: CreateMNPSensitiveAPIPermissionApprovalResponse,
    RollbackMNPVersionRequest: RollbackMNPVersionRequest,
    ModifyPlatformAuditStatusRequest: ModifyPlatformAuditStatusRequest,
    ModifyMNPRequest: ModifyMNPRequest,
    CreateMNPDomainACLRequest: CreateMNPDomainACLRequest,
    DescribeTeamDetailResp: DescribeTeamDetailResp,
    RollbackMNPVersionResponse: RollbackMNPVersionResponse,
    DescribeMNPVersionPreviewRequest: DescribeMNPVersionPreviewRequest,
    DescribeUserDetailResponse: DescribeUserDetailResponse,
    CreateTeamRequest: CreateTeamRequest,
    CreateDomainRequest: CreateDomainRequest,
    CreateApplicationSensitiveAPIRequest: CreateApplicationSensitiveAPIRequest,
    DescribeMNPSensitiveAPIPermissionListResp: DescribeMNPSensitiveAPIPermissionListResp,
    ReleaseMNPVersionRequest: ReleaseMNPVersionRequest,
    DescribeRoleListData: DescribeRoleListData,
    StringData: StringData,
    CreateConsoleMNPVersionCompileTaskRequest: CreateConsoleMNPVersionCompileTaskRequest,
    ModifyTeamMemberResponse: ModifyTeamMemberResponse,
    DescribeGlobalDomainsResp: DescribeGlobalDomainsResp,
    DescribeTeamDomainListResponse: DescribeTeamDomainListResponse,
    DescribeMNPPrivacyRequest: DescribeMNPPrivacyRequest,
    GlobalDomainDescribeListInfoResp: GlobalDomainDescribeListInfoResp,
    DescribeMNPApprovalListResp: DescribeMNPApprovalListResp,
    DescribeMNPSensitiveAPIPermissionApprovalData: DescribeMNPSensitiveAPIPermissionApprovalData,
    DescribeMNPSensitiveAPIPermissionApprovalListResponse: DescribeMNPSensitiveAPIPermissionApprovalListResponse,
    QueryOnlineVersionResp: QueryOnlineVersionResp,
    ModifyApplicationAppUrlRequest: ModifyApplicationAppUrlRequest,
    DescribeMNPSensitiveAPIPermissionApprovalListRequest: DescribeMNPSensitiveAPIPermissionApprovalListRequest,
    ConfigureMNPPreviewRequest: ConfigureMNPPreviewRequest,
    CreatePlatformAuditRequest: CreatePlatformAuditRequest,
    DescribeMNPOfflinePackageURLRequest: DescribeMNPOfflinePackageURLRequest,
    CreateMNPRequest: CreateMNPRequest,
    DescribeApplicationMNPVersionAuditListInfoResp: DescribeApplicationMNPVersionAuditListInfoResp,
    DescribeTeamRequest: DescribeTeamRequest,
    DescribeApplicationConfigResponse: DescribeApplicationConfigResponse,
    ModifyDomainResponse: ModifyDomainResponse,
    ApplicationDetail: ApplicationDetail,
    DescribeMNPRequest: DescribeMNPRequest,
    CreateUserRequest: CreateUserRequest,
    DescribeGlobalDomainListRequest: DescribeGlobalDomainListRequest,
    CreateTeamMemberInfoResp: CreateTeamMemberInfoResp,
    DescribeShowCaseResp: DescribeShowCaseResp,
    DescribeTeamMemberListRequest: DescribeTeamMemberListRequest,
    PresetResp: PresetResp,
    DescribeTeamDomainListInfoResp: DescribeTeamDomainListInfoResp,
    DescribeMNPSensitiveAPIPermissionApprovalResponse: DescribeMNPSensitiveAPIPermissionApprovalResponse,
    DescribeApplicationConfigRequest: DescribeApplicationConfigRequest,
    ModifyTeamMemberRequest: ModifyTeamMemberRequest,
    DescribeGlobalDomainsListData: DescribeGlobalDomainsListData,
    ModifyUserResponse: ModifyUserResponse,
    DescribeConsoleMNPVersionCompileTaskRequest: DescribeConsoleMNPVersionCompileTaskRequest,
    DescribeMNPManagerDetailData: DescribeMNPManagerDetailData,
    DescribeApplicationMNPVersionAuditListPageResp: DescribeApplicationMNPVersionAuditListPageResp,
    DescribeUserListData: DescribeUserListData,
    DescribeSensitiveApiApplyDetailRequest: DescribeSensitiveApiApplyDetailRequest,
    CreateOnlineApplyResponse: CreateOnlineApplyResponse,
    DescribeApplicationRequest: DescribeApplicationRequest,
    SensitiveApiPageInfo: SensitiveApiPageInfo,
    CreateMNPVersionResponse: CreateMNPVersionResponse,
    ModifyMNPResponse: ModifyMNPResponse,
    DescribeSimpleApplicationInfoListRequest: DescribeSimpleApplicationInfoListRequest,
    DisableTeamDomainRequest: DisableTeamDomainRequest,
    DescribeMNPDomainACLResponse: DescribeMNPDomainACLResponse,
    ApplicationPageInfo: ApplicationPageInfo,
    CreateConsoleMNPVersionCompileTaskResponse: CreateConsoleMNPVersionCompileTaskResponse,
    DescribeMNPVersionCompileTaskResp: DescribeMNPVersionCompileTaskResp,
    CreateDomainParam: CreateDomainParam,
    DescribeTeamPageResp: DescribeTeamPageResp,
    DescribeApplicationMNPVersionAuditListResponse: DescribeApplicationMNPVersionAuditListResponse,
    ApplicationSimpleInfoResp: ApplicationSimpleInfoResp,
    ModifyTeamResponse: ModifyTeamResponse,
    DescribeSimpleTeamListResponse: DescribeSimpleTeamListResponse,
    DescribeMNPVersionResp: DescribeMNPVersionResp,
    DescribeApplicationConfigFileResponse: DescribeApplicationConfigFileResponse,
    BooleanInfo: BooleanInfo,
    DescribeUserDetailRequest: DescribeUserDetailRequest,
    DescribeMNPBoardRequest: DescribeMNPBoardRequest,
    DownloadApplicationConfigResp: DownloadApplicationConfigResp,
    CreateMNPDomainACLResponse: CreateMNPDomainACLResponse,
    DescribeOfflineMNPPackageResponse: DescribeOfflineMNPPackageResponse,
    SensitiveApiAuditInfoResp: SensitiveApiAuditInfoResp,
    DescribeTeamListRequest: DescribeTeamListRequest,
    DescribeMNPApprovalListResponse: DescribeMNPApprovalListResponse,
    ModifyApplicationAppKeyRequest: ModifyApplicationAppKeyRequest,
    DescribeMNPVersionRequest: DescribeMNPVersionRequest,
    CreateSensitiveApiApplyResponse: CreateSensitiveApiApplyResponse,
    ApplicationSimpleListInfoResp: ApplicationSimpleListInfoResp,
    CreateApplicationRequest: CreateApplicationRequest,
    MNPTypeDefine: MNPTypeDefine,
    ApplicationMNPRelInfoResp: ApplicationMNPRelInfoResp,
    CreateSensitiveAPIResponse: CreateSensitiveAPIResponse,
    DescribeTempSecret4UploadFile2CosResponse: DescribeTempSecret4UploadFile2CosResponse,
    DescribeSensitiveAPIAuditListRequest: DescribeSensitiveAPIAuditListRequest,
    DescribeMNPReleasedVersionHistoryResponse: DescribeMNPReleasedVersionHistoryResponse,
    DeleteApplicationSensitiveAPIRequest: DeleteApplicationSensitiveAPIRequest,
    DescribeDomainTeamListRequest: DescribeDomainTeamListRequest,
    AddTeamMemberRequest: AddTeamMemberRequest,
    GlobalDomainCheckResp: GlobalDomainCheckResp,
    DescribeMNPVersionPreviewResponse: DescribeMNPVersionPreviewResponse,
    DisableApplicationSensitiveAPIResponse: DisableApplicationSensitiveAPIResponse,
    DescribeUserResponse: DescribeUserResponse,
    DeleteTeamMemberRequest: DeleteTeamMemberRequest,
    ModifyOnlineVersionRequest: ModifyOnlineVersionRequest,
    UploadFileTempSecret: UploadFileTempSecret,
    DescribeApplicationSensitiveAPIListResp: DescribeApplicationSensitiveAPIListResp,
    DescribeSensitiveApiAuthListParam: DescribeSensitiveApiAuthListParam,
    DescribeDomainTeamListInfoResp: DescribeDomainTeamListInfoResp,
    DescribeRoleDetailResponse: DescribeRoleDetailResponse,
    CreateApplicationSensitiveAPIResponse: CreateApplicationSensitiveAPIResponse,
    DescribeGlobalDomainACLResponse: DescribeGlobalDomainACLResponse,
    VersionBoardResp: VersionBoardResp,
    CreatePresetKeyRequest: CreatePresetKeyRequest,
    DescribeTeamMembersRequest: DescribeTeamMembersRequest,
    CreateApplicationResponse: CreateApplicationResponse,
    DescribeMNPCategoryRequest: DescribeMNPCategoryRequest,
    DescribeMNPVersionCompileTaskSubSimpleInfo: DescribeMNPVersionCompileTaskSubSimpleInfo,
    DeleteApplicationSensitiveAPIResponse: DeleteApplicationSensitiveAPIResponse,
    ModifyMNPVersionPreviewResponse: ModifyMNPVersionPreviewResponse,
    EnableApplicationSensitiveAPIRequest: EnableApplicationSensitiveAPIRequest,
    DescribeMNPManagerDetailResponse: DescribeMNPManagerDetailResponse,
    DeleteGlobalDomainRequest: DeleteGlobalDomainRequest,
    GlobalDomainDeleteResp: GlobalDomainDeleteResp,
    DeleteGlobalDomainResponse: DeleteGlobalDomainResponse,
    ModifySensitiveAPIAuditStatusResponse: ModifySensitiveAPIAuditStatusResponse,
    DescribeMNPListRequest: DescribeMNPListRequest,
    DescribeMNPPreviewRequest: DescribeMNPPreviewRequest,
    CreateGlobalDomainResp: CreateGlobalDomainResp,
    CreateGlobalDomainACLRequest: CreateGlobalDomainACLRequest,
    DescribeApplicationSensitiveAPIListRequest: DescribeApplicationSensitiveAPIListRequest,
    DescribeTeamMemberListResponse: DescribeTeamMemberListResponse,
    DescribeTeamMemberListPageResp: DescribeTeamMemberListPageResp,

}
